我有一些使用多个 if 语句(大约 100 个)的 T-SQL 代码,如下所示。如果第一个 IF 语句条件评估为 TRUE,它仍会评估其余 99 个语句。
IF(@check = 'abc') SET @var1 = @value
IF(@check = 'def') SET @var2 = @value
IF(@check = 'ghi') SET @var3 = @value
IF(@check = 'jkl') SET @var4 = @value
IF(@check = 'mno') SET @var5 = @value
…
…
我想将这些转换为使用 CASE 表达式。例如
CASE @check
WHEN 'abc' THEN SET @var1 = @value
WHEN 'def' THEN SET @var2 = @value
WHEN 'ghi' THEN SET @var3 = @value
WHEN 'jkl' THEN SET @var4 = @value
WHEN 'mno' THEN SET @var5 = @value
…
…
END
但是,我无法这样做,并且收到一条 SQL 错误,提示我无法在 CASE 表达式中使用 SET。
有谁知道我如何实现这一目标?谢谢!