IN 演算子 - 一致する値があるか調べる -

SQL-92/99   Oracle DB2 SQL Server MySQL PostgreSQL Access

WHERE 式 [ NOT ] IN ( 副問い合せ | 値1[, 値2 ... ] )

 IN 演算子は、指定した式の値に副問い合せの結果リスト、もしくは指定した値と一致する値が存在するかを調べるときに使用します。 このとき、式の値に一致する値が存在するとき真、一致する値が存在しないとき偽になります。

-- 【説明】
-- 次の SQL 文は、「T_13_1」表から「I1_CODE」列が副問い合せの結果リストと一致するデータを取得します。

SELECT * FROM T_13_1
 WHERE I1_CODE IN (
  SELECT I1_CODE FROM T_13_2
   WHERE I1_NAME = '車体部品'
 );


SERIALI1_CODEI2_CODEI_COST
203002201206500
203004201205500
203005201205600
203006202205600

-- 【説明】
-- 次の SQL 文は、「T_13_2」表から「I1_NAME」列が「汎用部品」または「特殊部品」に一致するデータを取得します。

SELECT * FROM T_13_2
  WHERE I1_NAME IN ('汎用部品', '特殊部品');


I1_CODEI1_NAMEI1_PRICE
101汎用部品 500
301特殊部品4500

参考表

T_13_1

SERIALI1_CODEI2_CODEI_COST
203001101102500
203002201206500
203003301309800
203004201205500
203005201205600
203006202205600

T_13_2

I1_CODEI1_NAMEI1_PRICE
101汎用部品 500
201車体部品2300
202車体部品2400
301特殊部品4500