我在postgres中有一个更新查询,如下所示:
update table1 e
set (col1,col2) =
(select col1,col2 from table2 se
where e.id = se.id and se.col2 is not null);
然而,这会更新所有行,即使是se.col2
为空的行。这些行被更新为空。我只想更新se.col2 is not null
的位置。不是所有行。
我在postgres中有一个更新查询,如下所示:
update table1 e
set (col1,col2) =
(select col1,col2 from table2 se
where e.id = se.id and se.col2 is not null);
然而,这会更新所有行,即使是se.col2
为空的行。这些行被更新为空。我只想更新se.col2 is not null
的位置。不是所有行。
2条答案
按热度按时间o2gm4chl1#
如果您使用
UPDATE
的(非标准)FROM
子句,这很简单:这假设
table2.id
是唯一的,或者至少table2
中不超过一行与任何给定的table1
行匹配。holgip5t2#
DB Fiddle to play with.