如果 id 匹配,请将 table A 单元格中的值替换为 table B 中的值

Replace value in cell from table A with values from table B, if id matches

我有

-- table_a --

id value
1  a 
2  b
3  c

-- table_b -- 

id value
1  NULL
2  NULL
3  NULL
4  d
5  e
6  f
7  g

我希望 result set 看起来像

-- result_set -- 

id value
1  a
2  b
3  c
4  d
5  e
6  f
7  g

我知道我可以做到

UPDATE table_b SET value = 
    CASE 
        WHEN id = 1 THEN 'a'
        WHEN id = 2 THEN 'b'
        WHEN id = 3 THEN 'c'
    END;

但是,如果我有很多行要更新怎么办?有自动方式吗?

您可以在 UPDATE 语句中连接表:

UPDATE table_b b
SET value = a.value
FROM table_a a
WHERE a.id = b.id AND b.value IS NULL;