當我執行下面的代碼:COALESCE沒有在PostgreSQL的工作
CREATE TABLE Unsubscriptions (
Email varchar(80) NOT NULL PRIMARY KEY,
Unsubscribed boolean NOT NULL
);
SELECT COALESCE(Unsubscribed, FALSE) FROM Unsubscriptions WHERE Email = 'nnn';
我想到的是,選擇不會返回NULL值,這是因爲,根據PostgreSQL的文檔COALESCE操作返回第一個非NULL值來自參數(在這種情況下爲FALSE)。
但是,在我的Amazon RDS實例上,即使表中沒有條目,上面的代碼仍會返回NULL,但應該使用第二個參數。
爲什麼COALESCE函數不返回FALSE值?
似乎是Amazon RDS特有的。 – JiriS
你的問題有些問題,你的專欄'退訂'已經不是空的。這意味着您的選擇無法返回null –
@Aツ如果表中沒有與條件匹配的條目,則它可以返回NULL。我也在其他數據庫中測試過它,它工作。 – user1613797