PostgreSQLにおいて、同値判定関連の比較演算子をまとめてみました。
ふと忘れるときがあったので、メモついでに。
自分がよく使う組み合わせ演算子も合わせて書いてみました。
詳細は
https://www.postgresql.jp/document/9.6/html/functions-comparison.html
にて。
- A, B: 何かの値
- T: True
- F: False
- N: Null
case1 | case2 | case3 | case4 | case5 | |
---|---|---|---|---|---|
x | A | A | A | N | N |
y | A | B | N | B | N |
x = y | T | F | N | N | N |
x <> y | F | T | N | N | N |
x IS NOT DISTINCT FROM y | T | F | F | F | T |
x IS DISTINCT FROM y | F | T | T | T | F |
x IS NULL | F | F | F | T | T |
x IS NOT NULL | T | T | T | F | F |
x IS NULL OR y IS NULL | F | F | T | T | T |
COALESCE(x, y) IS NOT NULL NOT(x IS NULL AND y IS NULL) x IS NOT NULL OR y NOT IS NULL |
T | T | T | T | F |
COALESCE(x, y) IS NULL x IS NULL AND y IS NULL |
F | F | F | F | T |
COALESCE(x =y, x IS DISTINCT FROM y) | T | F | T | T | F |