NVL 和 COALESCE 函數 - AWS Clean Rooms

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

NVL 和 COALESCE 函數

傳回一系列運算式中不為 null 的第一個運算式的值。找到非 Null 值時,就不會評估清單中剩餘的運算式。

NVL 與 COALESCE 相同。它們是同義詞。本主題說明語法,並包含兩者的範例。

語法

NVL( expression, expression, ... )

COALESCE 的語法是相同的:

COALESCE( expression, expression, ... )

如果所有表達式都是 Null,則結果為 Null。

當您想要在主要值遺失或為​​ null 時傳回次要值,這些函數非常有用。例如,查詢可能會傳回三個可用電話號碼中的第一個:行動電話號碼、住家或公司。函數中運算式的順序決定評估的順序。

引數

運算式

要評估 Null 狀態的表達式,例如欄名。

傳回類型

AWS Clean Rooms 根據輸入運算式決定傳回值的資料類型。如果輸入運算式的資料類型沒有一般類型,則會傳回錯誤。

範例

如果清單包含整數運算式,該函數傳回一個整數。

SELECT COALESCE(NULL, 12, NULL); coalesce -------------- 12

這個範例與前面的範例相同,不同之處在於它使用 NVL,會傳回相同的結果。

SELECT NVL(NULL, 12, NULL); coalesce -------------- 12

下列範例會傳回字串類型。

SELECT COALESCE(NULL, 'AWS Clean Rooms', NULL); coalesce -------------- AWS Clean Rooms

下列範例會導致錯誤,因為運算式清單中的資料類型不同。在這種情況下,清單中同時存在字串類型和數字類型。

SELECT COALESCE(NULL, 'AWS Clean Rooms', 12); ERROR: invalid input syntax for integer: "AWS Clean Rooms"