我正在尝试使用以下查询来总结客户余额:
select sum(balance) from mytable where customer = 'john'
Run Code Online (Sandbox Code Playgroud)
但是,如果客户没有余额(即mytable表中没有匹配的行),我的查询返回null而不是0.问题是什么?
alw*_*NET 85
试试这个:
select COALESCE(sum(balance),0) from mytable where customer = 'john'
Run Code Online (Sandbox Code Playgroud)
这应该做的工作.coalesce方法应该返回0.
And*_*mar 14
那不是问题.如果没有行,sum()将返回null.null如果所有行都有null余额,它也会返回.
要返回零,请尝试:
select isnull(sum(balance),0) from mytable where customer = 'john'
Run Code Online (Sandbox Code Playgroud)
select coalesce(sum(coalesce(balance,0)),0) from mytable where customer = 'john'
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
53224 次 |
| 最近记录: |