SQL Serverであいまい検索するLIKE
SQL Serverであいまい検索するには「LIKE」を使用します。
ワイルドカード
- %・・・複数文字用
- _(アンダーバー)・・・1文字のみ
- [^]・・・除外
参照:LIKE (Transact-SQL) – MSDN – Microsoft
例1. LIKEで苗字を検索するパターン
--加藤を検索する SELECT * FROM emp WHERE empname LIKE '加藤%';
「LIKE ‘加藤%’」は「加藤」からはじまる名前の人です。つまり、苗字が加藤の人を検索しました。
例2. LIKEで1ケタ台の従業員を検索するパターン
--ナンバーが1桁のレコードを検索する SELECT * FROM emp WHERE empno LIKE '0000_';
「LIKE ‘0000_’」のアンダーバーは任意の一文字です。「empno」がNUMBER型であると仮定すると「00000~00009」が該当します。
例3. LIKEで佐藤以外のレコードを検索するパターン
--加藤以外を検索する SELECT * FROM emp WHERE empname NOT LIKE '加藤%';
あいまい検索の否定形は「NOT LIKE」とします。ここでは苗字が「加藤」以外の人を検索しました。
例4. 特定文字を除外して検索するパターン
--特定文字を除外してあいまい検索する SELECT empno FROM emp WHERE empno LIKE 'A[^C-Z]%'; [結果] AA AB
empnoが「AA~AZ」の2桁のナンバーだっだと仮定します。ここではAからはじまるナンバーをあいまい検索し、2桁目にC~Zを含まないコードを検索しました。つまり、「AA~AB」までを検索しました。
LIKEとワイルドカード%,_をつかってあいまい検索をすることができました。
以上、SQL Serverであいまい検索するLIKEの使い方でした。
コメント