Я пытаюсь обновить поле в серии записей с помощью выражения, которое будет оцениваться как целое число, которое может быть отрицательным. Я хочу, чтобы нижняя граница столбца была 1; Любые строки, для которых выражение оценивается менее чем в 1, должны иметь свое поле, установленное в 1. Это может быть лучше всего выражено следующей парой псевдо-SQL-операторов:
update posts set field = [expensive expression];
update posts set field = 1 where field < 1;
Как я могу реализовать это в одном операторе SQL update
? Есть ли какой-нибудь эквивалент max(a, b)
в PostgreSQL, к которому я могу передать max([expression], 1)
?