【问题标题】:SQL Case inequalitySQL 案例不等式
【发布时间】:2013-02-09 12:24:09
【问题描述】:

目前我正在使用

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

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

【问题讨论】:

    标签: sql case inequality


    【解决方案1】:

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

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

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

    【讨论】:

      【解决方案2】:

      试试这个:

      select *
        from table1
       where column1 < @city
          or @city <= 0 
      

      【讨论】:

      • 谢谢。所有的答案都达到了我想要的结果
      • @Rohan 但是,显然,我是最短的 :)
      【解决方案3】:

      更多选择

      SELECT * 
      FROM table1 
      WHERE Column1 < CASE WHEN @City > 0 
                           THEN @City 
                           ELSE Column1 + 1 END
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-11-29
        • 1970-01-01
        • 1970-01-01
        • 2012-10-17
        • 2014-08-06
        相关资源
        最近更新 更多