【发布时间】:2011-08-24 18:31:58
【问题描述】:
我正在尝试使用一个表达式更新一系列记录中的一个字段,该表达式将计算为一个可能为负数的整数。我希望列的下限为 1;表达式计算结果小于 1 的任何行都应将其字段设置为 1。这可能最好通过以下一对伪 SQL 语句来表示:
update posts set field = [expensive expression];
update posts set field = 1 where field < 1;
如何在单个 SQL update 语句中实现这一点? PostgreSQL中是否有一些等效于max(a, b)的东西,我可以将max([expression], 1)传递给它?
【问题讨论】:
-
在一般情况下,条件(C 中的
?:)在 SQL 中由CASE表示:postgresql.org/docs/7.4/static/functions-conditional.html
标签: sql postgresql