本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
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"