Contents
LIKE句
LIKE句を使用し、ワイルドカード演算子を使用して類似の値と値を比較します。LIKE演算子には2つのワイルドカードが使用されています。
- パーセント記号(%)
- アンダースコア(_)
パーセント記号は、ゼロ、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 | nakashima| 32 | osaka | 2000.00 | | 2 | yokota | 25 | Delhi | 1500.00 | | 3 | mate | 23 | Kota | 2000.00 | | 4 | yohibe | 25 | Mumbai | 6500.00 | | 5 | tamanishi| 27 | Bhopal | 8500.00 | | 6 | tuskasa | 22 | MP | 4500.00 | | 7 | motors | 24 | Indore | 10000.00 | +----+----------+-----+-----------+----------+
以下は、SALARYが200で始まるCUSTOMERS表のすべてのレコードを表示する例です。
SQL> SELECT * FROM CUSTOMERS WHERE SALARY LIKE '200%';
これは、次の結果になります-
+----+----------+-----+-----------+----------+ | ID | NAME | AGE | ADDRESS | SALARY | +----+----------+-----+-----------+----------+ | 1 | nakashima| 32 | osaka | 2000.00 | | 3 | mate | 23 | Kota | 2000.00 | +----+----------+-----+-----------+----------+