IN条件(IN Condition)はメンバーシップ条件です。値またはサブクエリのリストに含まれるメンバーの値をテストします。
IN条件の構文は次のとおりです:
expr [ NOT ] IN ({ expression_list | subquery })
|( expr [, expr ]... ) [ NOT ] IN ( { expression_list [, expression_list ]...
| subquery } )
IN 条件は、式が式リストまたはサブクエリのメンバーであるかどうか、または複数の式が式リストまたはサブクエリのメンバーであるかどうかをテストできます。各式リスト内の式は、演算子 IN の左側の式と数とデータ型が一致していなければなりません。expression_list に1000個以上の式を指定することができます。 IN条件には主に以下の2つの形式があります:
INは=ANYと同じであり、集合内のすべてのメンバーを表します。例:SELECT * FROM emp WHERE job_id IN ('PU_CLERK','SH_CLERK') ORDER BY emp_id; SELECT * FROM emp WHERE salary IN (SELECT salary FROM emp WHERE dept_id =30) ORDER BY emp_id;NOT INは!= ALLと同じです。集合内のいずれかのメンバーがNULLの場合、計算結果はFALSEとなります。例:SELECT * FROM emp WHERE salary NOT IN (SELECT salary FROM emp WHERE dept_id = 30) ORDER BY emp_id; SELECT * FROM emp WHERE job_id NOT IN ('PU_CLERK', 'SH_CLERK') ORDER BY emp_id;NOT IN演算後のリスト内のいずれかの項目の計算結果がNULLの場合、すべての行の計算結果はFALSEまたはUNKNOWNとなり、いずれの行も返されません。