- 1. 概要
- 2. IN
- 3. IN で複数列を指定する
1. 概要
「A は B または A は C または A は D」と書くのは、面倒。
「A は (B, C, D) のどれか」と書く方が見やすい。
そのために、「IN」があります。
本ページは、下記のサイトを参考にさせていただきました。
「SQL の IN 句とは?複数の条件指定をまとめて行うための IN 句の使い方」
2. IN
「SELECT」するときの基本形は。
SELECT
*
FROM
table1
WHERE
条件式
;
で。
最も単純な条件式は。
カラム = 値
になります。
1つのカラムで複数の値を条件設定する場合。
C = V1
OR C = V2
これが多くなると大変ですし、プログラムで SQL を組む場合は、編集が難しくなります。
これを少し簡単にするのが「IN」で。
C IN (V1, V2, V3, ・・・)
と書くことができます。
注意することとして。
列挙する数には上限があって、「Oracle」では確か、「3000」まででした。
「SELECT」の結果として得るものであれば、数の上限がなかったのじゃなかったかしら?
そもそも、「IN」の中にいれるものが、あるテーブルから絞り込まれるものであれば。
C IN (SELECT 結果 FROM テーブル WHERE 条件)
と書くのがよいのです。
3. IN で複数列を指定する
「postgreSQL」では、「IN」で複数列を指定することができ、下記にように使えます。
SELECT
*
FROM
テーブル
WHERE
(C1, C2) IN ((V11, V21), (V21, V22), ・・・)
;
「Oracle」でもできるらしいですが、未確認です。
他のテーブルとの結合にも使えて。
SELECT
*
FROM
テーブル1
WHERE
(T1C1, T1C2) IN (SELECT T2C1, T2C2 FROM テーブル2 WHERE 条件式)
;
と書くことができます。
「DB2」では、値を直接書く方法はエラーになりましたが、他のテーブルとの結合はうまくいきました。
|
        |