UPDATE … CASE WHEN в PostgreSQL

Иногда бывает нужно обновить данные в таблице БД, но при этом установить различные значения в зависимости от каких-то условий. В таких случаях поможет UPDATE с условием.

Синтаксис UPDATE с условием:

UPDATE <таблица>
SET <колонка> = CASE 
  WHEN <условие-1> THEN <значение-1> 
  WHEN <условие-2> THEN <значение-2> 
  ELSE <значение-по-умолчанию> 
END;

Пример:

-- Поднимем зарплату сотрудникам отдела с ID=1,
-- а неудачникам из отдела с ID=13 уменьшим её вдвое
UPDATE employees
SET salary = CASE 
 WHEN department_id = 1 THEN salary*10
 WHEN department_id = 13 THEN salary/2
 ELSE salary
END;