SQL文の「LIKE」条検文。
使用できるのはワイルドカードの「%」と「_」のみだと思ってたが。
SQL Serverでは「[]」を使用して、簡単な正規表現が使用できることを初めて知った。
なお、今回のバージョンは以下です。
- SQL Server Standard 2008 R2
使い方はこんな感じ。
--先頭がA、B、Cで始まるデータ SELECT * FROM STAFF WHERE ID LIKE '[A-C]%' --先頭がA、B、Cで始まらないデータ SELECT * FROM STAFF WHERE ID LIKE '[^A-C]%'
ただし、LIKE条件文は索引(INDEX)が使用されない場合があるので、多用は注意が必要。
Oracleの場合は、LIKE検索の中間一致・後方一致の場合、索引(INDEX)が使用されないので、データの検索が遅くなる。
SQL Serverの場合は…そのうち調べとくか。
参考サイト
LIKE検索(中間一致、後方一致)のパフォーマンス改善~Oracle Textで全文検索 (オラクルエンジニア通信 – 技術資料、マニュアル、セミナー)
コメント