目前我正在使用
If @City > 0 then
SELECT * FROM table1 Where Column1 < @City
ELSE
SELECT * FROM table1
如何在单个查询中实现相同的效果?
答案 0 :(得分:4)
您只需将条件放在查询中:
select *
from table1
where ( @city > 0
and column1 < @city )
or @city <= 0
但要注意;这个可以稍微混淆优化器,这可能会使您的第一个查询性能降低。与实施前的所有测试一样。
答案 1 :(得分:0)
试试这个:
select *
from table1
where column1 < @city
or @city <= 0
答案 2 :(得分:0)
还有一个选择
SELECT *
FROM table1
WHERE Column1 < CASE WHEN @City > 0
THEN @City
ELSE Column1 + 1 END