如果 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;
我有
-- 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;