データベース - SQL 構文 - 条件式

 
1. IN
2. IN で複数列を指定する

1. IN

 SELECT するときの基本形は

SELECT
    *
FROM
	table1
WHERE
	条件式
;
 で。  最も単純な条件式は

カラム = 値
 になります。  1つのカラムで複数の値を条件設定する場合

    c = v1
OR	c = v2
 これが多くなると大変ですし、プログラムで SQL を組む場合は、編集が難しくなります。  これを少し簡単にするのが IN で

c IN (v1, v2, v3, ・・・)
 と書くことができます。  列挙する数には上限があって、Oracle では確か、3000 まででした。

2. 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 では、値を直接書く方法はエラーになりましたが、他のテーブルとの結合はうまくいきました。