機能
IN述語は、ある限定された値の集合について比較を指定します。
記述形式


参照項番
値指定 → “2.3 値指定と相手指定”
副問合せ → “2.13 副問合せ”
一般規則
値式のデータ型と、副問合せまたは限定値リストの中のすべての値指定のデータ型は、比較可能であることが必要です。比較可能なデータ型は“表2.52 比較可能なデータ型”を参照してください。
“X NOT IN S”と記述したものは、“NOT(X IN S)”と記述したのと同じ意味です。また、Sが副問合せのとき、“X IN S”と記述したものは、限定述語の“X=ANY S”と記述したのと同じです。
値式の値が、副問合せの結果または限定値リストの集合の中に1つでも存在する場合、IN述語の結果は真になります。1つも存在しない場合、偽になります。値式がNULLの場合、および副問合せの結果または限定値リストの値が1つでもNULLの場合、不定となります。IN述語の結果については“表2.60 限定子ANYまたはSOMEを指定した場合の限定述語の結果”を参照してください。
IN述語の各オペランドに動的パラメタ指定が指定された場合のDESCRIBE情報を以下に示します。
オペランド  | DESCRIBE情報  | |
|---|---|---|
値式  | 副問合せの場合  | 副問合せのデータ型  | 
限定値リストの場合  | 限定値リストの1番目の値指定のデータ型  | |
限定値リスト  | 値式が動的パラメタ指定でない場合  | 値式のデータ型  | 
値式が動的パラメタ指定の場合  | 限定値リストの1番目の値指定のデータ型  | |
備考.限定値リストの1番目の値指定が動的パラメタ指定の場合はエラーとなります。
使用例
“比較述語”の使用例で示した表Tに対して、列C3の値が20、40または60の行を検索します。
SELECT C1 FROM T
    WHERE C3 IN (20,40,60)
→この結果として、行R3とR6が選択されます。なお、列C3の値が40の行は
  存在しないため検索結果は2行となります。