2017-08-21 94 views
0

我有一個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不起作用。我該如何解決?謝謝!

回答

2

我不知道我理解正確你的問題,但可能是這種情況是你在找什麼(不使用CASE)?

WHERE @isCurrentRequest=1 AND m.date_6 IS NULL OR @isCurrentRequest=0 

無論如何,檢查時如果值爲NULL,你不能使用列名= NULL,但你應該使用欄爲空(NULL作爲一個「特殊」的值)

1

如果=的任何操作數是NULL,那麼運算符將返回NULL,因此您的代碼將無法按預期工作。

嘗試這樣:

WHERE IIF(@IsCurrentRequest = 1, IIF(m.Date_6 IS NULL, 1, 0), 1) 
+0

我已經試過了之前和tsql返回錯誤消息「不正確的語法附近的關鍵字'IS'」 – Meidi

+0

對不起,我真的不知道M $ -SQL很好...... –

相關問題