溫馨提示×

nullif與coalesce函數的區別

小樊
149
2024-10-10 15:41:55
欄目: 編程語言

NULLIFCOALESCE函數在SQL中都是用于處理空值(NULL)的工具,但它們的工作方式和應用場景有所不同。

  1. NULLIF函數

NULLIF函數接受兩個參數,如果這兩個參數的值相等,那么函數將返回NULL。否則,它將返回第一個參數。這個函數通常用于在兩個可能相等的值之間進行條件性的“轉換”,其中一個值在特定條件下被視為與另一個值“相同”(即相等),從而返回NULL以表示這種“相同”狀態。

例如:

SELECT NULLIF(10, 10) AS result;  -- 返回NULL,因為10等于10
SELECT NULLIF(10, 20) AS result;  -- 返回10,因為10不等于20
  1. COALESCE函數

COALESCE函數接受多個參數,并返回第一個非NULL參數。如果所有參數都是NULL,那么函數將返回NULL。這個函數通常用于在多個可能為空的值之間選擇“首選”值。它按照參數在列表中出現的順序進行查找,并返回第一個非NULL值。

例如:

SELECT COALESCE(10, 20, 30) AS result;  -- 返回10,因為10是非NULL值且是最先出現的
SELECT COALESCE(NULL, 20, 30) AS result;  -- 返回20,因為20是非NULL值且是第二個出現的
SELECT COALESCE(NULL, NULL, 30) AS result;  -- 返回30,因為30是非NULL值且是最后一個出現的

總結

  • NULLIF函數在兩個參數相等時返回NULL,否則返回第一個參數。它主要用于條件性地“轉換”兩個可能相等的值。
  • COALESCE函數返回列表中第一個非NULL參數。它主要用于在多個可能為空的值之間選擇“首選”值。

0
亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女