O Amazon Redshift não permitirá mais a criação de UDFs do Python a partir do Patch 198. As UDFs do Python existentes continuarão a funcionar normalmente até 30 de junho de 2026. Para ter mais informações, consulte a publicação de blog
Função ARRAY_CONTAINS
Verifica se a matriz contém o valor fornecido e exibe TRUE se for encontrada.
Sintaxe
ARRAY_CONTAINS( array, value [, null_match] )
Argumentos
- array
-
Uma expressão SUPER que especifica a matriz na qual pesquisar.
- valor
-
Um valor que especifica o elemento a ser pesquisado.
- null_match
-
Um valor booliano que especifica como os valores NULL são tratados:
- 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.
O padrão é TRUE.
O tratamento padrão de NULL também pode ser especificado pela opção de configuração:
-- same as null_match = TRUE SET default_array_search_null_handling to TRUE;
Tipo de retorno
A função ARRAY_CONTAINS exibe um tipo BOOLIANO.
Exemplo
Os exemplos a seguir mostram a função ARRAY_CONTAINS.
SELECT ARRAY_CONTAINS(ARRAY('red', 'green'), 'red'); array_contains ---------------- t (1 row)
Os exemplos a seguir mostram o comportamento da função com null_match definido como 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)
Os exemplos a seguir mostram o comportamento da função com null_match definido como FALSE. Observe que, ao especificar o comportamento null_match na função, a configuração padrão será substituída.
-- 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)