我正在尝试使用以下查询总结客户余额:
select sum(balance) from mytable where customer = 'john'
但是,如果客户没有余额(即mytable
表中没有匹配的行),我的查询返回 null 而不是 0。有什么问题?
我正在尝试使用以下查询总结客户余额:
select sum(balance) from mytable where customer = 'john'
但是,如果客户没有余额(即mytable
表中没有匹配的行),我的查询返回 null 而不是 0。有什么问题?
试试这个:
select COALESCE(sum(balance),0) from mytable where customer = 'john'
这应该做的工作。合并方法应该返回 0。
这不是问题。如果没有行,sum()
将返回null
。null
如果所有行都有null
余额,它也会返回。
要改为返回零,请尝试:
select isnull(sum(balance),0) from mytable where customer = 'john'
select coalesce(sum(coalesce(balance,0)),0) from mytable where customer = 'john'
试试这个:
select sum(IsNull(balance,0)) from mytable where customer = 'john'