我有一個關於where語句中的case語句和null的問題。SQL Where Where
我要做到以下幾點:
Declare @someVar int = null
select column1 as a from
TestTable t
where column1 = case when @someVar is not null then @someVar else column1 end
這裏的問題是:
比方說@someVar爲空。我們還要說TestTable中的column1具有NULL列值。然後,在case語句中我的條件t = t將始終評估爲false。
我基本上只是希望能夠根據@someVar的值(如果提供的話)有條件地過濾列。任何幫助?
我這樣做是因爲上面的生成語法錯誤(我在SQL Server) 「其中@someVar爲NULL或列1 = @someVar」 這一工程!你在做同樣的事情嗎? – needshelp 2010-05-11 00:32:58
不應該是OR column1 = COALESCE(@someVar,0) – 2010-05-11 00:39:06
@needshelp:你說得對。我已經更新了我的答案。 – 2010-05-11 06:17:50