环境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