Coalesce sql意思

在SQL中,COALESCE是一個函式,它用於返回第一個非空值或指定的默認值。這個函式接受一個或多個表達式作為參數,並返回第一個不為空的表達式。如果所有表達式都是空的,則返回默認值(如果提供了默認值),否則返回NULL。

例如,假設你有以下表:

CREATE TABLE Persons (
    ID int PRIMARY KEY,
    Name varchar(255),
    Age int
);

插入一些數據:

INSERT INTO Persons (ID, Name, Age)
VALUES (1, 'John', 25),
       (2, 'Jane', NULL),
       (3, NULL, 30);

現在,你可以使用COALESCE函式來獲取某個人的年齡,或者如果年齡欄位為空,則返回一個默認值:

SELECT COALESCE(Age, 0) AS Age
FROM Persons
WHERE ID = 2;

在這個例子中,COALESCE(Age, 0)會返回Jane的年齡,如果Age欄位為空,則返回0。

如果你有多個表達式,COALESCE會依次檢查它們,直到找到第一個不為空的值:

SELECT COALESCE(Age, Name, ID) AS Value
FROM Persons
WHERE ID = 3;

在這個例子中,COALESCE(Age, Name, ID)會返回Person 3的ID,因為Name和Age欄位都是空的。

如果你提供了默認值,COALESCE函式會返回默認值,而不是NULL,如果所有表達式都是空的:

SELECT COALESCE(Age, 0) AS Age
FROM Persons
WHERE ID = 3;

在這個例子中,COALESCE(Age, 0)會返回0,因為Person 3的Age欄位是空的。