mysql - Mysql IF THEN 没有 ELSE
问题描述
在 SELECT 中,我做了一些计算(求和、最小值、ifnull、乘法和减法),涉及几列(我们称之为 someComplexCalc),如果结果小于 0,我希望它变为 0。
问题是我不想重复 someComplexCalc 在一行中运行两次,因为性能损失。我想要某种语句,它只在结果小于 0 时才替换它,否则它会离开它,就像 IFNULL(statement,0) 的工作方式一样,它没有 THEN 部分。
使用 If 语句我不能这样做,也不能使用 CASE
选择 (IF someComplexCalc < 0, 0, someComplexCalc) AS 结果 #someComplexCal 运行两次 (IF someComplexCalc < 0, 0) AS 结果#not working, than part is missing 所以它返回NULL
解决方案
使用best()函数而不是if()
返回 0 或复杂计算中的较大者:
select greatest(complexcalc, 0) from yourtable
推荐阅读
- c++ - 如何从鼠标输入更改四元数?
- java - 如何在不丢失功能的情况下将另一个 EditorActionHandler 添加到单个 IdeAction?
- express - 如何在订阅中使用快速会话
- c - 如何在 20 秒后终止 ac 程序
- swift - 如何在stackview中从上到下添加子视图?
- excel - 代码在 Excel 2010 中有效,但在 Office (Excel) 365 中无效,有什么变化?
- javascript - jQuery 代码不适用于 html 按钮
- python - Pandas - 将 2 级索引字典映射到 DataFrame 列
- angular - 在管道后订阅时,Rxjs catchError 不起作用
- flutter - 在多次调用的选项卡之间切换 initstate()