Amazon Redshift ne prendra plus en charge la création de nouveaux Python à UDFs partir du patch 198. UDFs Le Python existant continuera de fonctionner jusqu'au 30 juin 2026. Pour plus d’informations, consultez le billet de blog
Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.
Fonction ARRAY_POSITIONS
Renvoie un tableau de positions (indices) où l'élément spécifié apparaît dans le tableau d'entrée. Les indices sont basés sur 0, où 0 indique le premier élément, 1 indique le deuxième élément, etc. Renvoie un tableau vide si l'élément est introuvable.
Syntaxe
ARRAY_POSITIONS( array, value [, null_match] )
Arguments
- réseau
-
Expression SUPER qui indique le tableau dans lequel effectuer la recherche.
- valeur
-
Valeur qui indique l'élément à rechercher.
- null_match
-
Une valeur booléenne qui indique comment les valeurs NULL sont gérées :
- 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 an empty array.
La valeur par défaut est TRUE.
La gestion des valeurs NULL par défaut peut également être spécifiée par l'option de configuration :
-- same as null_match = TRUE SET default_array_search_null_handling to TRUE;
Type de retour
La fonction ARRAY_POSITIONS renvoie un type SUPER.
Exemple
Les exemples suivants illustrent la fonction ARRAY_POSITIONS.
SELECT ARRAY_POSITIONS(ARRAY('red', 'green', 'red'), 'red'); array_positions ----------------- [0,2] (1 row) SELECT ARRAY_POSITIONS(ARRAY(1, 2, 3), 4); array_positions ----------------- [] (1 row)
Les exemples suivants montrent le comportement de la fonction lorsque null_match est défini sur TRUE.
SET default_array_search_null_handling to TRUE; -- NULL search is enabled SELECT ARRAY_POSITIONS(ARRAY('red', NULL, 'green', NULL), NULL); array_positions ----------------- [1,3] (1 row) -- The array can contain NULLs SELECT ARRAY_POSITIONS(ARRAY('red', NULL, 'green'), 'blue', TRUE); array_positions ----------------- [] (1 row)
Les exemples suivants montrent le comportement de la fonction lorsque null_match est défini sur FALSE. Notez que la spécification du comportement null_match dans la fonction remplacera le paramètre de configuration par défaut.
-- same as null_match = TRUE SET default_array_search_null_handling to TRUE; -- NULL search is disabled. The default behavior is overridden SELECT ARRAY_POSITIONS(ARRAY('red', 'green'), NULL, FALSE); array_positions ----------------- (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_POSITIONS(ARRAY('red', NULL, 'green'), 'green'); array_positions ----------------- [2] (1 row) -- The array contains NULL but no match is found SELECT ARRAY_POSITIONS(ARRAY('red', NULL, 'green'), 'blue'); array_positions ----------------- (1 row)