当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


PostgreSQL NULLIF()用法及代码示例


PostgreSQL的有一个NULLIF函数来处理空值。这个NULLIF函数是PostgreSQL提供的最常见的条件表达式之一。

用法:NULLIF(argument_1,argument_2);

这个NULLIF如果函数返回空值参数_1等于参数_2,否则返回参数_1

例:

首先,我们创建a 表名为帖子如下:

CREATE TABLE posts (
  id serial primary key,
    title VARCHAR (255) NOT NULL,
    excerpt VARCHAR (150),
    body TEXT,
    created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
    updated_at TIMESTAMP
);

现在,我们将一些示例数据插入表中,如下所示:



INSERT INTO posts (title, excerpt, body)
VALUES
      ('test post 1','test post excerpt 1','test post body 1'),
      ('test post 2','','test post body 2'),
      ('test post 3', null ,'test post body 3');

我们的目的用于显示帖子概述页面,该页面显示每个标题和摘录发布。如果未提供摘录,我们将使用帖子正文的前40个字符。我们可以简单地使用以下查询来获取帖子表。

SELECT
    ID,
    title,
    excerpt
FROM
    posts;

这导致以下结果:

nullif

这个摘录栏中的空值。要替换此空值,我们可以使用COALESCE函数如下:

SELECT
    id,
    title,
    COALESCE (excerpt, LEFT(body, 40))
FROM
    posts;

这将导致以下结果:

不幸的是,有a 摘录栏中的空值和”(空)之间混合。这就是为什么我们需要使用NULLIF函数:

SELECT
    id,
    title,
    COALESCE (
        NULLIF (excerpt, ''),
        LEFT (body, 40)
    )
FROM
    posts;

输出:

nullif

相关用法


注:本文由纯净天空筛选整理自RajuKumar19大神的英文原创作品 PostgreSQL – NULLIF() Function。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。