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;
这导致以下结果:
这个摘录栏中的空值。要替换此空值,我们可以使用COALESCE函数如下:
SELECT id, title, COALESCE (excerpt, LEFT(body, 40)) FROM posts;
这将导致以下结果:
不幸的是,有a 摘录栏中的空值和”(空)之间混合。这就是为什么我们需要使用NULLIF函数:
SELECT id, title, COALESCE ( NULLIF (excerpt, ''), LEFT (body, 40) ) FROM posts;
输出:
相关用法
- PostgreSQL ARRAY_AGG()用法及代码示例
- PostgreSQL AVG()用法及代码示例
- PostgreSQL COUNT()用法及代码示例
- PostgreSQL STRING_AGG()用法及代码示例
- PostgreSQL MAX()用法及代码示例
- PostgreSQL MIN()用法及代码示例
- PostgreSQL SUM()用法及代码示例
- PostgreSQL DENSE_RANK用法及代码示例
- PostgreSQL Drop用法及代码示例
- PostgreSQL FIRST_VALUE用法及代码示例
- PostgreSQL LAST_VALUE用法及代码示例
- PostgreSQL LEAD用法及代码示例
- PostgreSQL NTILE用法及代码示例
- PostgreSQL CUME_DIST用法及代码示例
- PostgreSQL RANK用法及代码示例
注:本文由纯净天空筛选整理自RajuKumar19大神的英文原创作品 PostgreSQL – NULLIF() Function。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。