首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> SQL Server 資料庫 >> 關於SqlServer

SQL Server查詢NULL值的正確姿勢

     編輯:關於SqlServer

同事問:如何查找某欄位為NULL並替換?直覺寫WHERE col = NULL,執行無錯但無結果;改WHERE LEN(col) = 0也無果。正確寫法:

SELECT * FROM table_name WHERE col IS NULL

為什麼 = NULL 不工作?

SQL遵循三值邏輯(True/False/Unknown)。NULL = NULL評估為Unknown,WHERE只保留True的行。IS NULL是專門判斷空值的述詞,回傳True/False。

常見陷阱

  • col = NULL → 永遠Unknown
  • col <> NULL → 永遠Unknown
  • LEN(col) = 0 → NULL傳入任何函數(除ISNULL/COALESCE外)結果仍為NULL,比較同樣失效

替換NULL的標準寫法

-- 查詢並顯示替換值
SELECT ISNULL(col, 'replacement') FROM table_name

-- 實際更新
UPDATE table_name SET col = 'replacement' WHERE col IS NULL

口訣:判斷空值用IS NULL / IS NOT NULL,替換空值用ISNULL() / COALESCE(),永遠不要用= / <>比較NULL。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved