SQL Case不等式

时间:2013-02-09 12:24:09

标签: sql case inequality

目前我正在使用

If @City > 0 then
    SELECT * FROM table1 Where Column1 < @City
ELSE
    SELECT * FROM table1

如何在单个查询中实现相同的效果?

3 个答案:

答案 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