首頁 > 資料庫 > mysql教程 > 為什麼 SQL Server 中 NULL = NULL 會回傳 False?

為什麼 SQL Server 中 NULL = NULL 會回傳 False?

Mary-Kate Olsen
發布: 2025-01-20 23:18:10
原創
523 人瀏覽過

Why Does NULL = NULL Return False in SQL Server?

理解為什麼 NULL = NULL 在 SQL Server 中為 False

在 SQL Server 中,WHERE 子句條件(例如 nullParam = NULL)的計算結果為 false。這可能看起來違反直覺,因為 NULL 通常表示缺失資料。 關鍵在於理解 SQL Server 對 NULL.

的解釋

NULL 不僅僅代表缺失的資料;它代表一個未知或不存在的值。 因此,比較兩個 NULL 值本質上是不確定的。 我們不能明確地說兩個未知數是否相等或不相等。這種不確定性會導致錯誤的評估。

這符合 ANSI SQL-92 標準。 預設情況下,SQL Server 使用 ANSI_NULLS ON 運行,強制執行此行為。 但是,設定 ANSI_NULLS OFF 會將比較結果變更為 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';
登入後複製

使用ANSI_NULLS OFF,輸出為「true」。 使用 ANSI_NULLS ON(預設值),輸出為“false”,示範此設定如何控制 SQL Server 對 NULL 比較的處理。 使用 IS NULL 是檢查空值的正確方法。

以上是為什麼 SQL Server 中 NULL = NULL 會回傳 False?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板