[有人可以解释为什么此查询将NULL
作为结果,但是我设置了@wnum变量吗?我已经尝试过所有可能想到的和不同的运算符/命令。
如果@ wnum = 49,则结果应为@ wnum3 = 52,@ wnum4 = 53或@ wnum3 = 1,如果@ wnum = 50,则@ wnum4 = 2
DECLARE @wnum AS int SET @wnum = 49
DECLARE @wnum3 AS int
DECLARE @wnum4 AS int
SELECT @wnum3
SET @wnum3 = CASE WHEN @wnum >=50 THEN 1 WHEN @wnum <50 THEN @wnum+3
END
SELECT@wnum4
SET @wnum4 = CASE WHEN @wnum >=50 THEN 2 WHEN @wnum <50 THEN @wnum+4
END
您正在设置变量之前进行选择。交换SET
和SELECT
行:
DECLARE @wnum AS int SET @wnum = 49
DECLARE @wnum3 AS int
DECLARE @wnum4 AS int
SET @wnum3 = CASE WHEN @wnum >=50 THEN 1 WHEN @wnum <50 THEN @wnum+3 END
SELECT @wnum3
SET @wnum4 = CASE WHEN @wnum >=50 THEN 2 WHEN @wnum <50 THEN @wnum+4 END
SELECT @wnum4
请在下面的查询中尝试解决您的问题。
DECLARE @wnum AS INT
SET @wnum = 49
DECLARE @wnum3 AS INT
DECLARE @wnum4 AS INT
SELECT @wnum3 = CASE
WHEN @wnum >= 50
THEN 1
WHEN @wnum < 50
THEN @wnum + 3
END
SELECT @wnum3
SELECT @wnum4 = CASE
WHEN @wnum >= 50
THEN 2
WHEN @wnum < 50
THEN @wnum + 4
END
SELECT @wnum4