pgsql coalesce函数

pgsql coalesce函数

pgsql coalesce函数

1. 介绍

PostgreSQL 中,COALESCE 函数是一个非常有用的函数。它用于返回一个参数列表中的第一个非空参数。如果所有参数都为空,则返回空值。

COALESCE 函数的语法如下所示:

COALESCE(expression1, expression2, ...)

其中,expression1, expression2, ... 是一个或多个表达式,可以是列名、常量或者函数的返回值。

2. 使用示例

下面是一些使用 COALESCE 函数的示例。

示例1:

SELECT COALESCE(NULL, 42);

运行结果:

  coalesce
-----------
        42
(1 row)

在这个示例中,NULL 是第一个参数,42 是第二个参数。由于第一个参数为空,所以返回了第二个参数的值。

示例2:

SELECT COALESCE(NULL, NULL, 'Hello');

运行结果:

 coalesce
----------
 Hello
(1 row)

在这个示例中,NULL 是第一个和第二个参数,'Hello' 是第三个参数。由于前两个参数都为空,所以返回了第三个参数的值。

示例3:

CREATE TABLE students (
   id SERIAL PRIMARY KEY,
   name VARCHAR,
   age INTEGER,
   city VARCHAR
);

INSERT INTO students (name, age, city) VALUES ('Alice', NULL, 'New York');
INSERT INTO students (name, age, city) VALUES ('Bob', 25, NULL);

SELECT name, COALESCE(age, 0), COALESCE(city, 'Unknown') FROM students;

运行结果:

 name  | coalesce |   coalesce
-------+----------+-------------
 Alice |        0 | New York
 Bob   |       25 | Unknown

在这个示例中,COALESCE 函数用于处理 NULL 值。当 age 列或 city 列的值为空时,分别返回了默认值 0 和 ‘Unknown’。

3. CASE 表达式 VS COALESCE 函数

PostgreSQL 中,除了 COALESCE 函数外,还有一种处理 NULL 值的方法,即使用 CASE 表达式。

下面是一个使用 CASE 表达式的示例:

SELECT name, 
       CASE 
          WHEN age IS NULL THEN 0 
          ELSE age 
       END, 
       CASE 
          WHEN city IS NULL THEN 'Unknown' 
          ELSE city 
       END 
FROM students;

使用 CASE 表达式可以实现跟 COALESCE 函数一样的功能。然而,COALESCE 函数更简洁,代码更易读。

4. 总结

COALESCE 函数是非常有用的,它可以用于处理 NULL 值。当对多个参数逐一进行处理时,使用 COALESCE 函数比 CASE 表达式更加简洁、清晰。它是 PostgreSQL 中处理 NULL 值的一个重要工具。

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程