2006/07/16 | SQL LIKE 大括弧 リテラル | |
---|
| SQL SERVER のSQL の SELECT文、 like によるパターン検索において、 ワイルドカード指定用の記号を検索したい場合があります。 つまり、パーセント記号 " % " や、大括弧 " [ " および " ] " などを検索したい場合があります。
その場合、クエリ中にて、大括弧で囲むことで指定します。 このことを、「ワイルドカード文字をリテラル文字として使う」といいます。
5%という文字列が含まれるレコードを検索したい場合は、 like '%5[%]%' とします。
しかし、大括弧で大括弧を指定するときは、 開始だけを囲い、終了は囲いません。
つまり、 [ は [[] として、 ] は ] のまま指定します。
つまり、例えば[AAA] という文字列が含まれるレコードを検索したい場合、 like '%[[]AAA]%' とします。 like '%[[]AAA[]]%' ではありません。
また、クエリ中のアポストロフィーのリテラル指定は、['] ではありません。 ' は、アポストロフィー2つ '' で指定します。
ですので、VB.NET で書くと、like のパターンに使うキーワードは、
querystring = replace(querystring,"[","[[]") querystring = replace(querystring,"%","[%]") querystring = replace(querystring,"_","[_]") querystring = replace(querystring,"'","''")
のように変換して発行すると良いと思います。 |
|