如果一两列为空,则为ISNULL,则0

时间:2018-10-22 15:00:48

标签: mysql sql

我有一条类似这样的SQL语句

ISNULL(revenue - expense, 0) 

我正在尝试确定我的两列(收入和/或费用)是否为空白。如果一个或两个都为空,则返回0。尽管如此,我仍然收到#Error消息。

4 个答案:

答案 0 :(得分:1)

您的声明表明:

COALESCE(revenue - expense, 0) 

但是,逻辑指示您可能真的想要:

COALESCE(revenue, 0) - COALESCE(expense, 0) 

也就是说,如果值是0,则将每个人分别视为NULL

请注意,数字值并不是真正的“空白”(表示空字符串)。他们是NULL

答案 1 :(得分:0)

您可以使用COALESCE()

SELECT COALESCE(revenue - expense, 0)
FROM tab_name;

答案 2 :(得分:0)

除了COALESCE,您还可以在MySQL中使用IfNull()函数

SELECT IFNULL(revenue - expense, 0) 
FROM your_table_name 

答案 3 :(得分:0)

按以下方式使用合并功能

     Select  Coalesce(revnue,0)-coalesce(expense,0)  
     from t