2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

SQLのチョット便利な記述方法 IN句

Last updated at Posted at 2020-01-08

通常の使い方

WHERE a IN(1,2,3) など

チョット便利な使い方

条件の羅列にテーブルのカラムや関数を指定することが出来ます。

いずれかの列に1が設定されているか判定したい時
WHERE 1 IN(列1,列2,列3)

列1~列5のうち、いずれかの値が等しいカラムが存在するか判定したい時

WHERE 1 IN(2,3,4,5)
   OR 2 IN(    3,4,5)
   OR 3 IN(        4,5)
   OR 4 IN(            5)

いずれかの列に0以外の数値(正数)が設定されているか判定したい時
WHERE 1 IN(SGN(列1),SGN(列2),SGN(列3))
※SGN()関数:プラスの数値の時は1を返す(DBMSによってはSIGN)

こんなことも可能
WHERE TRUE IN(a=x,b=y,c=z)
※ACCESSで確認済み

2023.6.13追記
列1~列5のうち、すべてのカラムの値が等しいか判定したい時

WHERE (1,1,1,1) IN((2,3,4,5))
--DBMSによっては
--WHERE (列1,列1,列1,列1) = (列2,列3,列4,列5)

どんな時に使うのか

判定条件にANDとORが混在するとき、ORの部分をIN句にすれば、可読性があがります。

BETWEEN句も同様

IN句と同様にテーブルのカラムを指定することが出来ます。
WHERE 50 BETWEEN 列1 AND 列2

2
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?