Можно ли как-то компактнее записать данный SQL-запрос

UPDATE category_client
  set def = 0
WHERE NAME = 'testPriceRoundCategory';
UPDATE category_client
    set def = 1
WHERE name = 'Розница';

Ответы (2 шт):

Автор решения: Akina

Ну можно...

UPDATE category_client
SET def = CASE name WHEN 'testPriceRoundCategory' 
                    THEN 0
                    WHEN 'Розница' 
                    THEN 1
                    ELSE name
                    END;

или

UPDATE category_client
SET def = CASE name WHEN 'testPriceRoundCategory' 
                    THEN 0
                    WHEN 'Розница' 
                    THEN 1
                    END
WHERE name IN ('testPriceRoundCategory', 'Розница');

PS. Нафига только...

→ Ссылка
Автор решения: Ainar-G

Так-то вариантов много. @Akina уже написал вам вариант через CASE, вот вариант через CTE:

WITH new_values(id, n) AS (
  VALUES
  (1, 200)
, (2, 300)
, (3, 400)
)
UPDATE t
   SET n = new_values.n
  FROM new_values
 WHERE t.id = new_values.id
;
→ Ссылка