2009年12月21日月曜日

[SQL]SQLServerのLikeは正規表現が使える!

先日、とあるシステムの調査のためSQLServerのプロファイラで発行しているSQLをトレースしていると、Like検索の対象に「ABC[0-9][0-9][0-9]」のような表現を見つけました。
はぁ?と思い、調査してみると、SQLServerのLike検索は正規表現が利用できることがわかりました。チョーびっくり。「検索条件のパターン照合」が参考になります。

このページにも書いてありますが、正規表現を使うと、インデックスが使われません。ので、データ量の多いテーブルには使わないことをお勧めします(ってオイ。これじゃあまり意味が。。。)。

2 件のコメント:

hironoji さんのコメント...

SQLServerよく使うけれど良いこときいた。
単純like条件を正規表現に変えてもパフォーマンスが低下して痛い目にあう可能性があるのね!

それにしても"GDD"っていいなぁ。

GENZO さんのコメント...

hironoji さん
コメントありがとうございます。

正規表現でもインデックスが利くとすばらしいんですけどね。。。
仕組み上、難しいらしいですね。