Skip to content

PostgreSQL COALESCE 函数 ​

本文介绍如何使用 PostgreSQL 的 COALESCE 函数来处理空值。

PostgreSQL 的 COALESCE 函数用于返回参数列表中第一个非空值。

你可以在SELECT语句以及其他需要处理值的地方使用 COALESCE 函数。

PostgreSQL COALESCE 语法 ​

这里是 PostgreSQL COALESCE 函数的语法:

sql
COALESCE(value1, value2, value3,...)

解释:

  • value1, value2, value3,...是要检查的一系列值。
  • 函数会从左到右依次检查这些值,直到找到第一个非空值,然后返回该值。
  • 如果所有的值都是空值(NULL),则 COALESCE 函数返回NULL。

PostgreSQL COALESCE 实例 ​

简单示例 ​

先看一个简单的示例。

比如,你有一个表employees,其中包含员工的姓名name和奖金bonus字段。有些员工可能没有奖金信息,即bonus字段为NULL。你想要查询员工的姓名和奖金,如果奖金为空,则显示 0。

sql
SELECT name, COALESCE(bonus, 0) AS "Effective Bonus"
FROM employees;

假设表中有以下数据:

namebonus
John1000
JaneNULL
Tom500

查询结果将是:

nameEffective Bonus
John1000
Jane0
Tom500

使用 COALESCE 函数处理默认值 ​

在另一个场景中,假设你有一个表单提交系统,用户可以填写一些可选信息。如果用户没有填写某个字段,你希望使用一个默认值。

例如,有一个表user_info,包含用户的年龄age和备注remark字段。如果用户没有填写备注,你希望显示“无备注”。

sql
SELECT age, COALESCE(remark, '无备注') AS "Remark"
FROM user_info;

假设表中有以下数据:

ageremark
25工作繁忙
30NULL
35爱好旅游

查询结果将是:

ageRemark
25工作繁忙
30无备注
35爱好旅游

结论 ​

在本文中,我们讨论了 PostgreSQL COALESCE 函数的语法,并提供了几个示例。COALESCE 函数在处理空值和提供默认值方面非常有用,可以使查询结果更加合理和准确。它是 PostgreSQL 中一个重要的函数,在实际应用中经常会用到。😃