我在存储过程中遇到了麻烦:
SELECT * FROM TESTTABLE
WHERE COUNT = CASE WHEN (@count = -1) THEN --SELECT ALL RESULT OF TESTTABLE--
ELSE @count END
当param @count不等于-1时,我希望该查询与:
相同SELECT * FROM TESTTABLE
我试过
SELECT * FROM TESTTABLE
WHERE COUNT = CASE WHEN (@count <> -1) THEN @count END
但事实并非如此。
答案 0 :(得分:2)
由于它是一个存储过程,因此最佳性能应该使用2个不同的查询:
if @count <> -1
SELECT * FROM TESTTABLE
else
SELECT * FROM TESTTABLE WHERE COUNT=@count
答案 1 :(得分:0)
由于您使用的是存储过程,因此可以使用if语句。类似的东西:
IF @Count <> -1
BEGIN
Select * From TestTable
END
ELSE
BEGIN
Select * From TestTable Where 1=0
END
答案 2 :(得分:0)
SELECT * FROM TESTTABLE WHERE COUNT=@count OR @count = -1