Deprecated: The each() function is deprecated. This message will be suppressed on further calls in /home/zhenxiangba/zhenxiangba.com/public_html/phproxy-improved-master/index.php on line 456
コラム エロゲーマーのためのSQL -エロゲーマーのためのSQL-
[go: Go Back, main page]

コラム

トップページ → コラム

3値論理における論理演算の結果

3値論理は真(true)と偽(false)と不定(unknown)の3つの値がでてきます。
不定(unknown)はSQLではNULLに相当する…と思って大丈夫だと思っています。

AND

true falseunknown(null)
true true falseunknown(null)
false false falsefalse
unknown(null)unknown(null)falseunknown(null)

OR

truefalse unknown(null)
true truetrue unknown(null)
false truefalse unknown(null)
unknown(null)trueunknown(null)unknown(null)

NOT

NOT
true false
false true
unknown(null)unknown(null)

NULLとunknownは違うそうで、確かにその通りな気がするのですが、ではNULL AND NULLという演算をした場合、unknown AND unknownだと思うのですが、NULLとunknownは違うのであれば、はNULL AND NULLという演算をどう考えればいいか分かりませんでした…
ちなみに、PostgreSQLではSELECT NULL AND NULLはNULLが返ります。
SELECT CASE WHEN ( NULL AND NULL ) IS NULL THEN 1 ELSE 0 ENDを実行してみてください。