我有一个 Excel 公式,需要在 MySQL 中重现,格式如下: MAX(IF(A=“”,B-C,B-D),0) 基本上,如果内部 IF < 0,则返回零。
我将其写为:
IF ( CASE
WHEN A IS NULL
THEN B-C
ELSE B-D
END > 0,
CASE
WHEN A IS NULL
THEN B-C
ELSE B-D
END, 0 )
但是我不禁想到有一种更简单的写法,毕竟我在这里执行了两次 CASE 语句。我对 mySQL 很生疏,在我开始接触之前,我想知道编写此代码最高效的代码方式是什么
最佳答案
Basically if the inner IF is < 0 return zero.
按照这个,您可以简单地执行以下操作:
select greatest(b - d, 0)
不过,我不太确定您的代码(Excel 或 SQL 中的代码)与此语句有何关系。
关于mysql - 重复的CASE语句: Is there a more efficient way of writing this SQL statement?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59116632/