この演算子を使うと、一方がnullの可能性がある場合の条件をcol1 = :col1 or col1 is nullのようにnullを考慮する必要がなくなる。
使い方
IS NOT DISTINCT FROMは、以下の条件と同じ動きとなる。(expo IS NOT NULL AND exp2 IS NOT NULL AND exp1 = exp2) OR (exp1 IS NULL AND exp2 IS NULL)
例
検索対象のデータ
データの内容(@は、nullを示しています)select * from test; col ----- 1 2 3 @ (4 行)
IS NOT DISTINCT FROM
is not distinct from nullとするとnullのレコードのみ取得できる。select * from test where col is not distinct from null; col ----- @
条件を指定すると、そのレコードのみ取得できる。
select * from test where col is not distinct from 3; col ----- 3 (1 行)