環境Select語句:SQL Server 2005中的SQL Server 2005:在ISNULL條件
我有收到逗號,一個參數的值分開存儲的過程。我在SQL中編寫了一個Table Value UDF函數來打破它,並將它作爲表返回給我。我正在使用該值來過濾存儲過程的where子句中的數據。一切正常,直到在傳遞給存儲過程的逗號分隔變量中有NULL。我想以這樣的方式編寫我的where子句,如果傳遞的變量是NULL,那麼它不應該使用Split函數。這是我在存儲過程中所做的。
Declare @list varchar(100), @Col2 varchar(100)
SELECT *
FROM Table1 t1
INNER JOIN dbo.Table2 t2 ON t1.Col1 = t2.Col1
WHERE t1.Col2 = ISNULL(@Col2,t1.Col2)
--I want to write below condition the same way i have written the above condition
AND t1.Col3 IN (select * from dbo.SplitMe(@list))
有沒有辦法編寫條件來選擇Col3選擇Col2的方式?
依賴布爾運算符在SQL中短路是非常危險的,因爲它是**不**保證:http://rusanu.com/2009/09/13/on-sql-server-boolean- operator-short-circuit/ – 2010-07-18 17:37:19
這就是我一直在尋找的東西。非常感謝。截至目前,我將與此同時進行,但如果性能會下降,我會將其更改爲動態查詢以查看是否有所改進。 – Asdfg 2010-07-21 07:38:37