[解決済み] SQLサーバーでNULL = NULLがfalseに評価される理由
2022-03-02 02:35:20
質問
SQLサーバーで
nullParam=NULL
を指定した場合、常に false と評価されます。これは直感に反しており、私は多くのエラーを引き起こしてきました。私は
IS NULL
と
IS NOT NULL
キーワードは正しい方法です。しかし、なぜSQLサーバーはこのような挙動をするのでしょうか?
解決方法は?
nullはこの場合、"unknown"(または"doesn't exist")と考えてください。 どちらの場合も、どちらの値もわからないのですから、等しいとは言えません。 つまり、null=nullはtrueではない(falseまたはnull、システムによって異なる)と評価されるのです。 この動作は、ANSI SQL-92標準に定義されています。
EDIT これは、あなたの ansi_nulls ANSI_NULLSがオフの場合、これはtrueと評価されます。 例として、以下のコードを実行してみてください。
set ansi_nulls off
if null = null
print 'true'
else
print 'false'
set ansi_nulls ON
if null = null
print 'true'
else
print 'false'
関連
-
[解決済み] SQL ServerでSELECTからUPDATEする方法とは?
-
[解決済み] SQL Server で複数行のテキストを 1 つのテキスト文字列に連結する方法
-
[解決済み] SQL Server テーブルにカラムが存在するかどうかを確認する方法は?
-
[解決済み] SQL Server の DateTime データ型から日付だけを返す方法
-
[解決済み] ...値に挿入する ( SELECT ... FROM ... )
-
[解決済み] カラムの変更:NULLをNOT NULLに変更する
-
[解決済み] SQL Server にテーブルが存在するかどうかを確認する
-
[解決済み] SQLのIN句をパラメータ化する
-
[解決済み] SQL Serverでレコードを削除した後、IDシードをリセットする。
-
[解決済み】SQL Serverで既存のテーブルにデフォルト値を持つカラムを追加する
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] テスト
-
[解決済み] ''付近の構文が正しくない
-
[解決済み] ORA-01790: 式は、対応する式と同じデータ型でなければならないエラーが発生するケース
-
[解決済み] DELETE文の競合REFERENCE制約
-
[解決済み] エラー (ORA-00923: 期待された場所に FROM キーワードが見つかりませんでした)
-
[解決済み] SQLクエリで2つの列から値を引き算する
-
[解決済み] SQLです。最初の出現箇所のみを返す
-
[解決済み] ORA-01821: ISO 8601 のローカルタイム付き日付のフォーマットが認識されないエラー
-
[解決済み] SQLサーバーで文字列をsmalldatetimeデータ型に変換する際、変換に失敗しました(静的値を除く)。
-
[解決済み] VBA - ADODB.CommandTextの実行