这就是我想要做的。基本上我在表Staging_X
中故意将一些列留空并稍后更新。我想使用下面的case
条件更新这些列。我想在存储过程中实现它。
UPDATE Staging_X
SET Staging_X.[NoMaterial]
(SELECT (case
when ((([Up]+[Test])+[Mon])+[Down_percentage])*(1.68)=(0)
then (168) else [Lost]*(1.68)
end)
FROM Staging_X)
答案 0 :(得分:5)
UPDATE Staging_X
SET [NoMaterial] =
case when [Up]+[Test]+[Mon]+[Down_percentage]=0
then 168 else [Lost]*1.68 end
WHERE [NoMaterial] is null
答案 1 :(得分:3)
如果我理解正确,你不需要像这样选择,因为值都在同一行。
所以尝试像
这样的东西UPDATE Staging_X
SET Staging_X.[NoMaterial] =
case
when ((([Up]+[Test])+[Mon])+[Down_percentage])*(1.68)=(0)
then (168)
else [Lost]*(1.68)
end
答案 2 :(得分:3)
更简单
UPDATE [Staging_X]
SET [NoMaterial] =
CASE [Up]+[Test]+[Mon]+[Down_percentage]
WHEN 0 THEN 168
ELSE [Lost] * 1.68
END