我有一个包含两个字段的表,我想更新每个字段具有不同的条件,如下所示。
one table: TableA
first field1: QtyToGenerate1
if QtyToGenerate1 = 0 then
QtyToGenerate1 = QtyOrdered
Else QtyToGenerate1 = QtyOrdered - QtyGenerated1
Second Field2: QtyToGenerate2
if QtyToGenerate2 = 0 then
QtyToGenerate2 = QtyOrdered
Else QtyToGenerate2 = QtyOrdered - QtyGenerated2
知道有很多方法可以做到这一点,如果你能给我更新'我将不胜感激。和'如果'因为这是我试图做的事情。
任何其他更简单的逻辑也肯定会受到赞赏,我不介意思考方法的一些提示。 感谢
答案 0 :(得分:1)
应该是
update tableA
set
field1 = case fieldtotest then
valuetoreturn
else
valuetoreturn
end,
field2 = case fieldtotest then
valuetoreturn
else
valuetoreturn
end
where ...
答案 1 :(得分:1)
UPDATE TableA SET
QtyToGenerate1 = CASE WHEN QtyToGenerate1 = 0 THEN QtyOrdered
ELSE QtyOrdered - QtyGenerated1
END,
QtyToGenerate2 = CASE WHEN QtyToGenerate2 = 0 THEN QtyOrdered
ELSE QtyOrdered - QtyGenerated2
END
答案 2 :(得分:1)
条件是完全没必要的:
UPDATE TableA SET
SET QtyToGenerate1 = QtyOrdered - QtyGenerated1,
QtyToGenerate2 = QtyOrdered - QtyGenerated2
WHERE QtyGenerated1 <> 0 OR QtyGenerated2 <> 0;
当您减去0
时,不会更改该值。因此,不需要if
。