簡體   English   中英

檢查 SQL 服務器中具有值 NULL 的多個列

[英]Check multiple columns with value NULL in SQL Server

目前我有以下 sql 聲明:

SELECT CASE 
    WHEN sd.GV01 IS NULL 
         AND sd.GV02 IS NULL 
         AND sd.GV03 IS NULL 
         AND sd.GV04 IS NULL 
         AND sd.GV05 IS NULL
         AND sd.CountryId = '4' THEN 4
    END AS rating
FROM masterData sd

我試圖以更簡短的定義采用相同的方式:

SELECT CASE 
    WHEN NULL IN (sd.GV01, sd.GV02, sd.GV03, sd.GV04, sd.GV05)
         AND sd.CountryId = '4' THEN 4
    END AS rating
FROM masterData sd

但是我沒有得到返回值,為什么? 有人可以給我一個更好的解決方案嗎?

你的方法很好。 幾乎所有NULL值的比較都會返回NULL - 這被視為錯誤。

您可以使用COALESCE()

SELECT (CASE WHEN COALESCE(sd.GV01, sd.GV02, sd.GV03, sd.GV04, sd.GV05) IS NULL AND
                  sd.CountryId = '4'
             THEN 4
        END) AS rating
FROM masterData sd;

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM