【SQL Server】LIKE であいまい検索する

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の使い方でした。

コメント