View a markdown version of this page

Fonction ARRAY_POSITIONS - Amazon Redshift

Amazon Redshift ne prendra plus en charge l'utilisation des UDF Python après le 30 juin 2026. Nous allons commencer à l'appliquer par étapes. Pour plus d'informations sur les détails de la fin de vie de Python et des options de migration, consultez le billet de blog publié le 30 juin 2025.

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, 0 indiquant le premier élément, 1 le second élément, etc. Renvoie un tableau vide si l'élément n'est pas trouvé.

Syntaxe

ARRAY_POSITIONS( array, value [, null_match] )

Arguments

tableau

Expression SUPER qui spécifie le tableau dans lequel effectuer la recherche.

valeur

Valeur qui spécifie l'élément à rechercher.

null_match

Valeur booléenne qui indique comment les valeurs NULL sont gérées :

  • null_match = FALSE : la recherche de NULL renvoie NULL. Si le tableau contient des valeurs NULL et qu'aucune correspondance n'est trouvée pour une valeur de recherche non NULL, renvoie NULL.

  • null_match = TRUE : les valeurs NULL sont traitées comme des éléments valides et consultables. Si le tableau contient des valeurs NULL et qu'aucune correspondance n'est trouvée pour une valeur de recherche non NULL, il renvoie un tableau vide.

La valeur par défaut est TRUE.

La gestion 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 avec null_match 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 avec null_match 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)

Consultez aussi