如何使用不同的条件(SQL)更新同一个表中的两个字段?

时间:2018-03-22 00:38:06

标签: sql

我有一个包含两个字段的表,我想更新每个字段具有不同的条件,如下所示。

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

知道有很多方法可以做到这一点,如果你能给我更新'我将不胜感激。和'如果'因为这是我试图做的事情。

任何其他更简单的逻辑也肯定会受到赞赏,我不介意思考方法的一些提示。 感谢

3 个答案:

答案 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