ARRAY_CONTAINS 函數 - Amazon Redshift

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)

另請參閱