- 1. 概要
- 2. IN
- 3. IN で複数列を指定する
- 4. LIKE
1. 概要
本ページでは、主に「WHERE」句で使用する、条件式の構文について、わたしのメモしておきたい内容を書き留めています。
本ページは、下記のサイトを参考にさせていただきました。
「【SQL】LIKE 句」
2. IN
「SELECT」するときの基本形は
SELECT
*
FROM
table1
WHERE
条件式
;
で。
最も単純な条件式は
カラム = 値
になります。
1つのカラムで複数の値を条件設定する場合
c = v1
OR c = v2
これが多くなると大変ですし、プログラムで SQL を組む場合は、編集が難しくなります。
これを少し簡単にするのが IN で
c IN (v1, v2, v3, ・・・)
と書くことができます。
列挙する数には上限があって、Oracle では確か、3000 まででした。
3. IN で複数列を指定する
postgreSQL では、IN で複数列を指定することができ、
SELECT
*
FROM
table1
WHERE
(c1, c2) IN ((v11 v21), (v21, v22), ・・・)
;
Oracle でもできるらしいですが、未確認です。
他のテーブルとの結合にも使えて
SELECT
*
FROM
table1
WHERE
(t1c1, t1c2) IN (SELECT t2c1, t2c2 FROM table2 WHERE 条件式)
;
と書くことができます。
「DB2」では、値を直接書く方法はエラーになりましたが、他のテーブルとの結合はうまくいきました。
4. LIKE
下記の形式で、文字列の条件式を記述します。
WHERE
文字列カラム LIKE '条件'
「条件」の部分に通常の文字列のみであれば、「=」と同様、完全一致の選択を行うことになります。
「LIKE」の機能は、ワイルドカードを使って、文字列の部分一致の選択ができることにあります。
ワイルドカードは、下記のように使います。
ワイルドカード | 意味 | 備考 |
% | 0 文字以上の任意の文字列 | |
_ | 任意の 1 文字 | |
|
|