Могу ли я создать запрос на обновление в postgres, где обновляемые столбцы вложены в случай? - PullRequest
1 голос
/ 14 июля 2020

Есть ли способ в postgres обновить несколько столбцов с помощью одного предложения case? Я только когда-либо видел, как это было сделано наоборот - то есть несколько предложений case для каждого столбца:

update table
set col1 = case when condition then value1 else value2 end
set col2 = case when condition then value3 else value4 end
where ...

Но что, если я хочу обновить несколько столбцов и условие в предложении case будет одинаково для всех? Разве не было бы более разумным синтаксис, позволяющий записывать предложение case один раз и каждый столбец вложить в него? Примерно так:

update table
case when condition then
    set col1 = value1, col2 = value2, ...
else
    set col1 = value3, col2 = value4, ...
end
where ...

Это возможно в postgres?

...