Amazon Redshift dejará de admitir la creación de nuevas UDF de Python a partir del parche 198. Las UDF de Python existentes seguirán funcionando hasta el 30 de junio de 2026. Para obtener más información, consulte la publicación del blog
Función ARRAY_CONTAINS
Comprueba si la matriz contiene el valor dado y devuelve TRUE si lo encuentra.
Sintaxis
ARRAY_CONTAINS( array, value [, null_match] )
Argumentos
- array
-
Una expresión SUPER que especifica la matriz en la que se va a buscar.
- valor de
-
Un valor que especifica el elemento que se va a buscar.
- null_match
-
Un valor booleano que especifica cómo se gestionan los valores 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.
El valor predeterminado es TRUE.
La gestión predeterminada de NULL también se puede especificar mediante la opción de configuración:
-- same as null_match = TRUE SET default_array_search_null_handling to TRUE;
Tipo de retorno
La función ARRAY_CONTAINS devuelve un tipo BOOLEAN.
Ejemplo
Los ejemplos siguientes muestran la función ARRAY_CONTAINS.
SELECT ARRAY_CONTAINS(ARRAY('red', 'green'), 'red'); array_contains ---------------- t (1 row)
Los ejemplos siguientes muestran el comportamiento de la función con null_match establecido en 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)
Los ejemplos siguientes muestran el comportamiento de la función con null_match establecido en FALSE. Tenga en cuenta que si se especifica el comportamiento null_match en la función, se anulará el valor de configuración predeterminado.
-- 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)