gpt4 book ai didi

sql - 如何在 SQL 中实现 `set field = max(1, x)`?

转载 作者:行者123 更新时间:2023-11-29 12:29:04 25 4
gpt4 key购买 nike

我试图用一个表达式更新一系列记录中的一个字段,该表达式的计算结果可能是一个可能为负的整数。我希望该列的下限为 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) 传递给它?

最佳答案

使用函数 GREATEST .

或者,一种更通用的条件方法:

SELECT 
CASE WHEN condition
THEN valueForTrue
ELSE valueForFalse
END
FROM ...

关于sql - 如何在 SQL 中实现 `set field = max(1, x)`?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7180451/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com