ARRAY_CONTAINS 関数 - Amazon Redshift

Amazon Redshift は、パッチ 198 以降、新しい Python UDF の作成をサポートしなくなります。既存の Python UDF は、2026 年 6 月 30 日まで引き続き機能します。詳細については、ブログ記事を参照してください。

ARRAY_CONTAINS 関数

配列に指定された値が含まれているかどうかを確認し、見つかった場合は TRUE を返します。

構文

ARRAY_CONTAINS( array, value [, null_match] )

引数

array

検索する配列を指定する SUPER 式。

検索する要素を指定する値。

null_match

NULL 値の処理方法を指定するブール値:

  • null_match = FALSE: NULL を検索すると、NULL が返されます。配列に NULL 値が含まれており、NULL 以外の検索値に一致するものが見つからない場合は、NULL が返されます。

  • null_match = TRUE: NULL は、有効な、検索可能な要素として扱われます。配列に NULL 値が含まれており、NULL 以外の検索値に一致するものが見つからない場合は、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)

関連情報