2006/07/16 19SQL 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,"'","''")

のように変換して発行すると良いと思います。



<前へ  次へ>

INDEX

AliceGallery StrataDictionary

(c) 1995 - 2022 AliceGallery