簡體   English   中英

CASE表達式返回NULL值

[英]CASE expression returning NULL value

我正在嘗試使用案例表達式來獲取我的票證狀態。 它工作正常,但未返回Not Available 而不是返回Status中的空值作為結果。

這個查詢怎么了?

其次,如果還需要其他操作,我可以做得更多嗎?

Select 
Case 
      When Status=1 and isTaken=1 then 'Open'
      When Status=4 and isTaken=0 then 'Expire'
      When Status=2 and isTaken=0 then 'Pending'
      When Status=0 and isTaken=0 then 'Close'

Else 'Not Available' End As 'Status' 
from Tickets 
Where Id='1234567890'

檢查圖像以獲取更多說明。

在此處輸入圖片說明

您的查詢未返回NULL ,而是返回0行。 您的WHERE正在過濾行或表為空。

刪除WHERE並查看它是否返回行,以查看表是否為空。 如果是這樣,請確保您的ID過濾器正確。

如果即使過濾器沒有找到任何內容,您也想返回一行,則需要NOT EXISTSLEFT JOIN

DECLARE @ID VARCHAR(20) = '1234567890'

SELECT
    F.ID,
    Case 
        When Status=1 and isTaken=1 then 'Open'
        When Status=4 and isTaken=0 then 'Expire'
        When Status=2 and isTaken=0 then 'Pending'
        When Status=0 and isTaken=0 then 'Close'
    Else 'Not Available' End As 'Status' 
FROM
    (VALUES (@ID)) AS F(ID)
    LEFT JOIN Tickets AS C ON F.ID = C.Id

暫無
暫無

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

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