機能
IN述語は、ある限定された値の集合について比較を指定します。
記述形式
参照項番
値指定 → “2.3 値指定と相手指定”
副問合せ → “2.14 副問合せ”
一般規則
値式のデータ型と、副問合せまたは限定値リストの中のすべての値指定のデータ型は、比較可能であることが必要です。比較可能なデータ型は“表2.58 比較可能なデータ型”を参照してください。
“X NOT IN S”と記述したものは、“NOT(X IN S)”と記述したのと同じ意味です。また、Sが副問合せのとき、“X IN S”と記述したものは、限定述語の“X=ANY S”と記述したのと同じです。
値式の値が、副問合せの結果または限定値リストの集合の中に1つでも存在する場合、IN述語の結果は真になります。1つも存在しない場合、偽になります。値式がNULLの場合、および副問合せの結果または限定値リストの値が1つでもNULLの場合、不定となります。IN述語の結果については“表2.67 限定子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行となります。