SQL-ワイルドカード演算子
ワイルドカード演算子を使用して値を類似の値と比較するために使用されるSQLLIKE演算子についてはすでに説明しました。
SQLは、次の表で詳細に説明されているLIKE演算子と組み合わせて2つのワイルドカード演算子をサポートします。
シニア番号 | ワイルドカードと説明 |
---|---|
1 | The percent sign (%) 1つ以上の文字に一致します。 Note − MS Accessは、パーセント記号(%)ワイルドカード文字の代わりにアスタリスク(*)ワイルドカード文字を使用します。 |
2 | The underscore (_) 1文字に一致します。 Note − MS Accessは、アンダースコア(_)の代わりに疑問符(?)を使用して、任意の1文字に一致させます。 |
パーセント記号は、0文字、1文字、または複数文字を表します。アンダースコアは、単一の数字または文字を表します。これらの記号は組み合わせて使用できます。
構文
'%'および '_'演算子の基本的な構文は次のとおりです。
SELECT * FROM table_name
WHERE column LIKE 'XXXX%'
or
SELECT * FROM table_name
WHERE column LIKE '%XXXX%'
or
SELECT * FROM table_name
WHERE column LIKE 'XXXX_'
or
SELECT * FROM table_name
WHERE column LIKE '_XXXX'
or
SELECT * FROM table_name
WHERE column LIKE '_XXXX_'
ANDまたはOR演算子を使用して、N個の条件を組み合わせることができます。ここで、XXXXは任意の数値または文字列値です。
例
次の表には、「%」および「_」演算子を使用したさまざまなLIKE句を持つWHERE部分を示すいくつかの例があります。
シニア番号 | ステートメントと説明 |
---|---|
1 | WHERE SALARY LIKE '200%' 200で始まる値を検索します。 |
2 | WHERE SALARY LIKE '%200%' 任意の位置に200がある値を検索します。 |
3 | WHERE SALARY LIKE '_00%' 2番目と3番目の位置に00がある値を検索します。 |
4 | WHERE SALARY LIKE '2_%_%' 2で始まり、長さが3文字以上の値を検索します。 |
5 | WHERE SALARY LIKE '%2' 2で終わる値を検索します。 |
6 | WHERE SALARY LIKE '_2%3' 2番目の位置に2があり、3で終わる値を検索します。 |
7 | WHERE SALARY LIKE '2___3' 2で始まり3で終わる5桁の数字の値を検索します。 |
実際の例を見てみましょう。次のレコードを持つCUSTOMERSテーブルについて考えてみます。
+----+----------+-----+-----------+----------+
| ID | NAME | AGE | ADDRESS | SALARY |
+----+----------+-----+-----------+----------+
| 1 | Ramesh | 32 | Ahmedabad | 2000.00 |
| 2 | Khilan | 25 | Delhi | 1500.00 |
| 3 | kaushik | 23 | Kota | 2000.00 |
| 4 | Chaitali | 25 | Mumbai | 6500.00 |
| 5 | Hardik | 27 | Bhopal | 8500.00 |
| 6 | Komal | 22 | MP | 4500.00 |
| 7 | Muffy | 24 | Indore | 10000.00 |
+----+----------+-----+-----------+----------+
次のコードブロックは例であり、SALARYが200で始まるCUSTOMERSテーブルのすべてのレコードを表示します。
SQL> SELECT * FROM CUSTOMERS
WHERE SALARY LIKE '200%';
これにより、次の結果が得られます。
+----+----------+-----+-----------+----------+
| ID | NAME | AGE | ADDRESS | SALARY |
+----+----------+-----+-----------+----------+
| 1 | Ramesh | 32 | Ahmedabad | 2000.00 |
| 3 | kaushik | 23 | Kota | 2000.00 |
+----+----------+-----+-----------+----------+