以下のように、複数の 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
しかし、それができず、CASE 式内で SET を使用できないという SQL エラーが表示されます。
どうすればこれを達成できるか考えている人はいますか? ありがとう!