我在使用两个SQL语句时遇到问题,即CASE WHEN
和OR
。我试图做以下事情:
@variable1 = CASE @variable2 WHEN 2 THEN @variable2 + 2 OR @variable2 - 2
我想执行查询,查找@variable2
的特定值,然后在THEN
语句后选择选择两个选项之一。这是行不通的。有人可以帮助我吗?
答案 0 :(得分:2)
这是你想要实现的目标:
@variable1 = CASE @variable2
WHEN 2 THEN @variable2 + 2
ELSE @variable2 - 2
END
因此,如果@variable2 = 2
,则添加2,否则减去2。
听起来你想要从另一个数字中添加或减去指定的数字,所以这里看看你能做些什么:
declare @BaseNumber int
set @BaseNumber = 10 -- number we want to add to or subtract from
declare @MathNumber int
set @MathNumber = 5 -- number we want to add on or subtract from @BaseNumber
declare @IsAddition bit
set @IsAddition = 1 -- true means we're adding not subtracting
使用CASE
:
SELECT @BaseNumber = CASE @IsAddition
WHEN 1 THEN @BaseNumber + @MathNumber
ELSE @BaseNumber - @MathNumber
END
使用IF
阻止:
IF (@IsAddition)
BEGIN
SET @BaseNumber = @BaseNumber + @MathNumber
END
ELSE
BEGIN
SET @BaseNumber = @BaseNumber - @MathNumber
END
答案 1 :(得分:0)
你可以嵌套案例
case @variable2
when 2 then
case when someCond
then 4 -- @variable2 + 2
else 0 -- @variable2 - 2
end
when 3 then @variable2 * 2
else @variable2
end