有没有办法做类似的事情:
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”附近的语法不正确
答案 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