SQL之间的情况下何时表达?

时间:2019-12-06 15:12:07

标签: sql sql-server case between

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

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

我得到一个错误:

  

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

2 个答案:

答案 0 :(得分:2)

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

答案 1 :(得分:1)

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