InterBase クイック スタート:Part IV - パターン マッチング
提供: InterBase
InterBase クイック スタート:Part IV - WHERE 句の利用 へ戻る
値の比較の他に、検索条件では、特定のパターンを使用したキャラクタ文字列のテストを行うことができます。 パターンを定義する際にワイルドカードを使用することができます:
- %(パーセント記号): 0 個以上の文字と一致。
- _(アンダースコア): 1 文字と一致。
以下の表は、一般的なパターンの例を示しています。 CONTAINING
以外のすべての条件が、大文字小文字を区別します。
WHERE 句
|
結果 |
---|---|
WHERE last_name LIKE '%q%'
|
最低 1 つ |
|
文字 |
|
最低 1 つ |
|
アルファベット順で |
LIKE を使用する
-
LIKE
は大文字小文字を区別し、ワイルドカードが使用できます。 次の文を入力して、姓がan
で終わる社員全員を検索します。SELECT last_name, first_name, emp_no FROM Employee WHERE last_name LIKE '%an'
結果、次の図のようになっていると思います。
- ここで、次の
SELECT
文を入力して、姓が次のパターンと一致する姓を検索します:M
の文字で始まる- その後、2 文字続く
- そして
D
の文字 - その後、文字が続いてもなくても構わない
SELECT last_name, first_name, emp_no FROM Employee WHERE last_name LIKE 'M__D%'
結果、次の図のようになっていると思います。
%
ワイルドカードは、0 個以上の文字と一致します。 次のクエリは、姓がBurbank
、Bender
、Brown
などである行を返します。SELECT last_name, first_name, emp_no FROM Employee WHERE last_name LIKE 'B%r%'
結果、次の図のようになっていると思います。
STARTING WITH を使用する
STARTING WITH
演算子は、特定の文字または文字列で始まる値かどうかをテストします。 STARTING WITH
は、大文字小文字を区別せず、ワイルドカード文字もサポートしません。
- 次の文を使用して、
Le
から始まる姓の、2 人の社員を抽出してみましょう:SELECT last_name, first_name FROM Employee WHERE last_name starting WITH 'Le'
結果、次の図のようになっていると思います。
-
STARTING WITH
演算子の否定は、論理演算子NOT
をその前につけます。SELECT dept_no, department, location FROM Department WHERE dept_no NOT starting WITH '1'
結果、次の図のようになっていると思います。
CONTAINING を使用する
CONTAINING
演算子は、特定の文字または文字列を含む結果を検索します。 CONTAINING
は、大文字小文字を区別せず、ワイルドカードもサポートしません。
- 次の文を入力して、姓の中に
g
またはG
の文字がある社員を検索します。SELECT last_name, first_name FROM Employee WHERE last_name containing 'G'
結果、次の図のようになっていると思います。
-
CONTAINING
演算子が大文字小文字を区別しないことを確認するには、前のクエリを変更して、条件で小文字のg
を指定するようにします。SELECT last_name, first_name FROM Employee WHERE last_name containing 'g'
両方とも同じ結果になることが確認できます。