正解です(ただし、IN
に注意してください は演算子であり、句ではありません。これは、Oracleだけでなく、SQLでも一般的にこのように機能します。
where 1 not in (null,1)
と同等です:
where 1 != null and 1 != 1
これは実際には次のように書く必要があります:
WHERE 1 NOT IN (NULL, 1)
および
WHERE 1 <> NULL AND 1 <> 1
これは次と同じです:
WHERE (1 <> NULL) AND (1 <> 1)
評価対象:
WHERE UNKNOWN AND FALSE
さらに次のように:
WHERE FALSE
したがって、行は正しく返されません。
WHERE 1 NOT IN (NULL, 2)
がある場合は注意してください 、WHERE UNKNOWN
と評価されます (演習として残します)そして行も返されません。