Fonction ARRAY_POSITION - Amazon Redshift

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_POSITION

Renvoie la position (index) de la première occurrence d'un élément spécifié dans un tableau. L'indice est basé sur 0, où 0 indique le premier élément, 1 indique le deuxième élément, etc. Renvoie -1 si l'élément est introuvable dans le tableau.

La fonction renvoie uniquement la position de la première occurrence. Pour rechercher toutes les occurrences, pensez à utiliser la Fonction ARRAY_POSITIONS fonction.

Syntaxe

ARRAY_POSITION( 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 -1.

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_POSITION renvoie un type INT.

Exemple

Les exemples suivants illustrent la fonction ARRAY_POSITION.

SELECT ARRAY_POSITION(ARRAY('red', 'green'), 'red'); array_position ---------------- 0 (1 row) SELECT ARRAY_POSITION(ARRAY(1, 2, 3), 4); array_position ---------------- -1 (1 row) -- only the position of the first occurrence is returned SELECT ARRAY_POSITION(ARRAY('red', 'green', 'red'), 'red'); array_position ---------------- 0 (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_POSITION(ARRAY('red', NULL, 'green'), NULL); array_position ---------------- 1 (1 row) -- The array can contain NULLs SELECT ARRAY_POSITION(ARRAY('red', NULL, 'green'), 'blue', TRUE); array_position ---------------- -1 (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_POSITION(ARRAY('red', 'green'), NULL, FALSE); array_position ---------------- (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_POSITION(ARRAY('red', NULL, 'green'), 'green'); array_position ---------------- 2 (1 row) -- The array contains NULL but no match is found SELECT ARRAY_POSITION(ARRAY('red', NULL, 'green'), 'blue'); array_position ---------------- (1 row)

Consultez aussi