Выполнить одно обновление в двух разных условиях PostgreSQL - PullRequest
1 голос
/ 24 февраля 2020

Мне нужно выполнить обновление для моей таблицы, версия которой равна 3, однако мне также нужно изменить код, где текущий код равен 220.

Мне нужно сделать это в одном обновлении из соображений производительности .

enter image description here

Текущее обновление, которое я делаю ниже, изменяет только версию с кодом 220, мне также нужно изменить, где версия равно 3, но без изменения кода на 270, где текущий код не равен 220:

UPDATE plan
  SET version = '3', code = 270
  WHERE version LIKE '2'
  AND code = 220;

1 Ответ

1 голос
/ 24 февраля 2020

Вы можете использовать условные логи c:

UPDATE plan
  SET version = '3',
       code = (CASE WHEN code = 220 THEN 270 ELSE code END)
  WHERE version LIKE '2';
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...