我有一個where子句是這樣的:Where子句檢查參數值返回一個字段爲空
Where m.Date_6 = Case When @IsCurrentRequest = 1 Then NULL Else m.Date_6 End
@IsCurrentRequest有點參數。我想檢查@IsCurrentRequest = 1,然後返回m.Date_6,否則返回1.我知道這不會工作,因爲m.Date_6 = NULL不起作用。我該如何解決?謝謝!
我有一個where子句是這樣的:Where子句檢查參數值返回一個字段爲空
Where m.Date_6 = Case When @IsCurrentRequest = 1 Then NULL Else m.Date_6 End
@IsCurrentRequest有點參數。我想檢查@IsCurrentRequest = 1,然後返回m.Date_6,否則返回1.我知道這不會工作,因爲m.Date_6 = NULL不起作用。我該如何解決?謝謝!
我不知道我理解正確你的問題,但可能是這種情況是你在找什麼(不使用CASE)?
WHERE @isCurrentRequest=1 AND m.date_6 IS NULL OR @isCurrentRequest=0
無論如何,檢查時如果值爲NULL,你不能使用列名= NULL,但你應該使用欄爲空(NULL作爲一個「特殊」的值)
如果=
的任何操作數是NULL
,那麼運算符將返回NULL
,因此您的代碼將無法按預期工作。
嘗試這樣:
WHERE IIF(@IsCurrentRequest = 1, IIF(m.Date_6 IS NULL, 1, 0), 1)
我已經試過了之前和tsql返回錯誤消息「不正確的語法附近的關鍵字'IS'」 – Meidi
對不起,我真的不知道M $ -SQL很好...... –