LIKE述語


用途:特定の文字列が含まれる行を取得する(where句で使用)


■%ワイルドカード
0個以上の文字で構成される文字列にマッチするワイルドカード

製品名(Name)に「Ball」という文字列を含む行と
「LL」という文字列で始まる行を取り出すSQLは以下の通り。

SELECT Product.ID, Name
FROM Production.Product
WHERE Name LIKE '%Ball%' OR Name LIKE 'LL%'

ワイルドカードでは大文字と小文字が区別されることに注意


■_ワイルドカード
任意の一文字を表すワイルドカード

製品名(Name)の最初が「Hex Nut」で、その後に任意の一文字を持つ行を
取り出すSQLは以下の通り。

SELECT ProductID,Name
FROM Production.Product
WHERE Name LIKE 'Hex Nut _'


なお、「_」は複数指定することも可能

「Hex Nut 10」のようにNutの後に任意の2文字が続く製品名を持つことを
条件に指定する場合のSQLは以下の通り。

SELECT ProductID,Name
FROM Production.Product
WHERE Name LIKE 'Hex Nut __'


■%ワイルドカードと_ワイルドカードの組み合わせ
%ワイルドカードと_ワイルドカードは組み合わせることが可能

Productテーブルから、製品名NameがCで始まり
最後の文字の一つ前がcである行を取り出すSQLは以下の通り。

SELECT ProductID,Name
FROM Production.Product
WHERE Name LIKE 'C%c_'