【问题标题】:SQL case when expression between?表达式之间的SQL case?
【发布时间】:2019-12-06 15:12:07
【问题描述】:

有没有办法做类似的事情:

DECLARE @x INT;
DECLARE @y INT;
SET @x=45;
SET @y=30;

SELECT 
    CASE @x - @y 
       WHEN BETWEEN 2 AND 3 
          THEN 'true' 
          ELSE 'false' 
    END

我收到一个错误:

消息 156,级别 15,状态 1
关键字“BETWEEN”附近的语法不正确

【问题讨论】:

    标签: sql sql-server select case between


    【解决方案1】:

    CASE expr WHEN val THEN ... 仅适用于相等检查,不适用于BETWEEN 等更复杂的条件。在你的罐子里,你需要使用像CASE WHEN val BETWEEN ... THEN ...这样的构造:

    SELECT CASE WHEN @x - @y BETWEEN 2 AND 3 THEN 'true' ELSE 'false' END
    

    或者,您可以使用:

    SELECT CASE @x - @y
        WHEN 2 THEN 'true'
        WHEN 3 THEN 'true'
        ELSE 'false'
    END
    

    【讨论】:

      【解决方案2】:
      SELECT CASE WHEN @x - @y BETWEEN 2 AND 3 
                  THEN 'true' 
                  ELSE 'false' 
             END
      

      【讨论】:

        猜你喜欢
        • 2020-07-03
        • 1970-01-01
        • 1970-01-01
        • 2012-09-20
        • 1970-01-01
        • 2012-10-03
        • 2020-05-02
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多