首页 > 解决方案 > 选择中的默认值 - SQL

问题描述

我想在表格的特定列中选择最大和最小数字的总和,我很好,但如果该列为空,我还需要设置一个默认值,到目前为止我试过这个:

SELECT 
(select max(col) FROM table) + (select min(col) FROM table)
AS col_sum = 0

如果我的表是空的,我想获得一个具有默认值的单个值,如下所示:

col_sum
-------
0

我尝试了一些默认值的解决方案,但我没有找到这种情况。抱歉,我是 SQL 新手 :)

标签: sqlpostgresql

解决方案


您可以使用COALESCE()

SELECT COALESCE( (select max(col) FROM table) + (select min(col) FROM table), 0) as col_sum

我倾向于只使用一个子选择:

SELECT COALESCE( (SELECT MAX(col) + MIN(col) FROM table)), 0) as col_sum

甚至完全消除子查询:

SELECT COALESCE(MAX(col) + MIN(col), 0)
FORM table;

推荐阅读