ray88’s diary

お仕事で困ったとき用の自分用の覚書

2023-08-27から1日間の記事一覧

SQL指南書 比較述語とNULL④ 限定述語とNULL(ALLとANY)

■限定述語 SQLには ALL と ANY の2つの限定述語がある。 ANY は IN と同値のため、あまり使用されない ■ALL ALLは比較述語と併用し「~全てと等しい」や「~全てよりもおおきい」という意味を表す【具体例】 以下のテーブルよりNULLを排除したケースで「Bク…

SQL指南書 比較述語とNULL③ NOT IN と NOT EXISTS は同値ではない

SQL 指南書集 目次 - ray88’s diary ■NOT IN を NOT EXISTS で書き換える場合の注意 パフォーマンスチューニングにおいてINをEXISTSで書き換えることはよく行われる。 これは問題のない同値変換だが、問題はNOT INをNOT EXISTSで書き換える場合、 必ずしも結…

SQL指南書 比較述語とNULL② CASE式とNULL

SQL 指南書集 目次 - ray88’s diary ■CASE式で間違えがちなSQL文の例 以下のSQLが絶対に「×」を返さない理由 ・「WHEN NULL THEN」は「WHEN col_1 = NULL」の省略系である。 ・よって、NULL判定の結果は常にunknown となる ・WHEN句と同様にCASE式の評価方法…

SQL指南書 比較述語とNULL① 非中律が成立しない

■排中律(excluded middle) とは 「命題とその否定を「または」でつなげて作成される命題は全て真である」 という命題を2値倫理で排中律と呼ぶ 【排中律の具体例】 ジョンは20歳か、(または)20歳でないかどちらかである ■SQLでは排中律は成立しない …