當前位置: 首頁>>編程示例 >>用法及示例精選 >>正文


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。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。