我可以CASE
用来选择要在SELECT
查询(Postgres)中显示的列,如下所示:
SELECT CASE WHEN val = 0 THEN column_x
WHEN val = 1 THEN column_y
ELSE 0
END AS update, ...
UPDATE
在Postgres中执行查询时(即选择应更新哪些列),是否有可能完全相似?我假设没有,因为我对此一无所获,但是也许有人有一个聪明的选择(除了使用过程,还是使用CASE
来更新每个列,以确定是应该为该列的值分配一个新值还是简单地重新分配现有值)值)。如果没有简单的选择,我当然也会接受。
额外信息:在我的情况下,我有14列可能要更新的列,每个匹配的行仅更新一个(要更新的表在查询中与另一个连接)。要更新的行数很可能会有所不同,可能是数十行或数百行。我相信加入条件的索引已经到位。