Amazon Redshift 將不再支援從修補程式 198 開始建立新的 Python UDFs。現有 Python UDF 將繼續正常運作至 2026 年 6 月 30 日。如需詳細資訊,請參閱部落格文章
本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
ARRAY_CONTAINS 函數
檢查陣列是否包含指定的值,如果找到,則傳回 TRUE。
語法
ARRAY_CONTAINS( array, value [, null_match] )
引數
- 陣列
-
SUPER 表達式,指定要在其中搜尋的陣列。
- value
-
指定要搜尋之元素的值。
- null_match
-
布林值,指定 NULL 值的處理方式:
- null_match = FALSE: Searching for NULL returns NULL. If the array contains NULL values and no match is found for a non-NULL search value, returns NULL.
- null_match = TRUE: NULLs are treated as valid, searchable elements. If the array contains NULL values and no match is found for a non-NULL search value, it returns FALSE.
預設值為 TRUE。
組態選項也可以指定預設 NULL 處理:
-- same as null_match = TRUE SET default_array_search_null_handling to TRUE;
傳回類型
ARRAY_CONTAINS 函數會傳回 BOOLEAN 類型。
範例
下列範例顯示 ARRAY_CONTAINS 函數。
SELECT ARRAY_CONTAINS(ARRAY('red', 'green'), 'red'); array_contains ---------------- t (1 row)
下列範例顯示將 null_match 設定為 TRUE 的函數行為。
SET default_array_search_null_handling to TRUE; -- NULL search is enabled SELECT ARRAY_CONTAINS(ARRAY('red', NULL, 'green'), NULL); array_contains ---------------- t (1 row) -- The array can contain NULLs SELECT ARRAY_CONTAINS(ARRAY('red', NULL, 'green'), 'blue', TRUE); array_contains ---------------- f (1 row)
下列範例顯示將 null_match 設定為 FALSE 的函數行為。請注意,在函數中指定 null_match 行為會覆寫預設組態設定。
-- same as null_match = TRUE SET default_array_search_null_handling to TRUE; -- NULL search is disabled. The default behavior is overridden SELECT ARRAY_CONTAINS(ARRAY('red', 'green'), NULL, FALSE); array_contains ---------------- (1 row) -- same as null_match = FALSE SET default_array_search_null_handling to FALSE; -- The array contains NULL and a match is found SELECT ARRAY_CONTAINS(ARRAY('red', NULL, 'green'), 'green'); array_contains ---------------- t (1 row) -- The array contains NULL but no match is found SELECT ARRAY_CONTAINS(ARRAY('red', NULL, 'green'), 'blue'); array_contains ---------------- (1 row)