PostgreSQL UPDATE有多个SET

时间:2014-11-06 08:14:18

标签: sql postgresql sql-update

我想通过将NULL值替换为0.00来更新表中的2列。说我有以下表格内容:

    ID        length_1        length_2
-------------------------------------------
     1           12.01            NULL
     2            NULL            6.02   
     3            NULL            NULL   

我可以在同一个指令中合并这两个指令吗?在那之后我需要把它们都放在规则之内:

UPDATE myTable SET length_1 = 0.00 WHERE length_1 IS NULL
UPDATE myTable SET length_2 = 0.00 WHERE length_2 IS NULL

2 个答案:

答案 0 :(得分:0)

只需使用CASE WHEN测试值:

UPDATE myTable SET 
    length_1 = CASE WHEN length_1 IS NULL THEN 0.00 ELSE length_1 END,
    length_2 = CASE WHEN length_2 IS NULL THEN 0.00 ELSE length_2 END

请参阅this fiddle

答案 1 :(得分:0)

如果有值,请使用CASE WHEN输入0.00,否则使用length_1:

UPDATE myTable SET

length_1 = CASE 
           WHEN length_1 IS NULL 
           THEN 0.00 
           ELSE length_1
           END,

length_2 = CASE 
           WHEN length_2 IS NULL 
           THEN 0.00 
           ELSE length_2
           END ;