3

目前我正在使用

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

如何在单个查询中达到相同的效果?

4

3 回答 3

4

您只需将条件放入查询中:

select *
  from table1
 where ( @city > 0
         and column1 < @city )
    or @city <= 0 

但请注意;这可能会稍微混淆优化器,这可能会降低您的第一个查询的性能。与实施前的所有测试一样。

于 2013-02-09T12:28:02.003 回答
0

尝试这个:

select *
  from table1
 where column1 < @city
    or @city <= 0 
于 2013-02-09T12:32:39.293 回答
0

另一种选择

SELECT * 
FROM table1 
WHERE Column1 < CASE WHEN @City > 0 
                     THEN @City 
                     ELSE Column1 + 1 END
于 2013-02-10T00:35:54.820 回答