Postgresql 在通过条件时更新列

Inw*_*weo 2 postgresql case conditional-statements

是否可能,如果可以,如何实现以下改变?

给定表格:

param_tab
param_id serial
value integer
anothervalue integer
update_date TIMESTAMP
Run Code Online (Sandbox Code Playgroud)

我想做类似的事情:

UPDATE param_tab pt
CASE WHEN CONDITION THEN pt.value = 14, pt.anothervalue = 20 END
pt.update_date = someTimestamp;
Run Code Online (Sandbox Code Playgroud)

所以update_date总是更新并且valueanothervalue在某些情况下更新

Lau*_*lbe 7

CASE在正确的位置使用该语句:

UPDATE param_tab pt
SET value = CASE WHEN condition THEN 14 ELSE pt.value END,
    anothervalue = CASE WHEN condition THEN 20 ELSE pt.anothervalue END,
    update_date = someTimestamp;
Run Code Online (Sandbox Code Playgroud)