我试图通过以下查询总结客户余额:

select sum(balance) from mytable where customer = 'john' 

但是,如果客户没有余额(即mytable表中没有匹配的行),我的查询将返回null,而不是0.有什么问题吗?

推荐答案

试试这个:

select COALESCE(sum(balance),0) from mytable where customer = 'john' 

这应该能行.coalesce方法应返回0.

Sql相关问答推荐

使用SQL/R循环查找邻居

具有2个共享列的两个表的Amazon RSQL合并

有没有一种正确的方法来利用SQL UNION来从三个潜在查询中 Select 最大值?

我希望以正确的升序获取SQL结果.怎样才能得到它们?

MariaDB查询在逗号分隔的字符串中查找多个值

Ffltter&;Dart SQL Lite包:是否可以在一个查询中执行多条更新语句(每次执行不同的WHERE参数)

为什么TRY_CONVERT返回一个XML验证错误而不是NULL?

了解放置时的连接

如何在SQL中更新Json字符串

如何将我的联接数据放入每个用户每月多行的列中?

不同计数的 Postgres PIVOT 表

如何将 START 和 END 日期之间的日期差异作为 SQL 中的单独列获取

如何计算两个非周期性时间序列+分组的重叠持续时间

在 postgresql 中,我可以将其组合成一个查询吗?

在 BigQuery 数据集中查找表大小和占总数据集大小的百分比

如何使用 pg-promise 创建要在复杂的 sql 查询中使用的 VALUES 列表?

奇怪的甲骨文行为

当计数为 0 时显示行

聚合 Athena 中的列

从 Pyspark 转换为具有多个分组条件的语句时的情况