UPDATE с условием в PostgreSQL

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

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

UPDATE table_name
SET field = CASE 
WHEN <условие-1>
  THEN <значение-1>
ELSE
 <значение-2>
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;