Pistolflyコメントするツイートhttp://codezine.jp/a/article/aid/532.aspxしかし、NOTの場合は単純だからいいとして、ANDとORの組み合わせを全部覚えるのはなかなか大変です。そこで、3つの真理値の間に次のような優先順位があると考えてください。false強い方が弱い方を呑み込みます。unknown」なら、unknownの方が強いので、結果もunknownになります。unknown」の場合、今度はtrueの方が強くなるので、結果はtrueになります。この順位を覚えておけば、3値論理演算も見通しがよくなります。ANDの演算にunknownが含まれた場合、結果が絶対にtrueにならないという特徴をよく覚えておいてください。後でこれが重要なキーになります。INのサブクエリで使用されるテーブルの選択列にNULLが存在する場合、SQL全体の結果は常に空になります。これは恐ろしい現象です。正しい結果を得るには、EXISTS述語を使って書きます。EXISTS述語が絶対にunknownを返さないからです。EXISTSは、trueとfalseしか返しません。EXISTSは同値ではないという紛らわしい状況が生じています。http://codezine.jp/a/article.aspx?aid=532&p=2...これは、入力が空テーブル(空集合)だった場合はNULLを返すという極値関数の仕様によります。...入力が空テーブルだった場合にNULLを返すのは、極値関数だけではありません。COUNT関数以外の集約関数もそうです。コメントをキャンセルメールアドレスが公開されることはありません。コメントデータの処理方法の詳細はこちらをご覧ください。