Amazon Redshift non supporterà più la creazione di nuovi Python UDFs a partire dalla Patch 198. Python esistente UDFs continuerà a funzionare fino al 30 giugno 2026. Per ulteriori informazioni, consulta il post del blog
Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.
funzione ARRAY_POSITION
Restituisce la posizione (indice) della prima occorrenza di un elemento specificato in una matrice. L'indice è basato su 0, dove 0 indica il primo elemento, 1 indica il secondo elemento e così via. Restituisce -1 se l'elemento non viene trovato nell'array.
La funzione restituisce solo la posizione della prima occorrenza. Per trovare tutte le occorrenze, considerate l'utilizzo della Funzione ARRAY_POSITIONS funzione.
Sintassi
ARRAY_POSITION( array, value [, null_match] )
Arguments (Argomenti)
- matrice
-
Un'espressione SUPER che specifica l'array in cui effettuare la ricerca.
- value
-
Un valore che specifica l'elemento da cercare.
- null_match
-
Un valore booleano che specifica come vengono gestiti i valori 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 -1.
Il valore predefinito è TRUE.
La gestione predefinita dei NULL può essere specificata anche dall'opzione di configurazione:
-- same as null_match = TRUE SET default_array_search_null_handling to TRUE;
Tipo restituito
La funzione ARRAY_POSITION restituisce un tipo INT.
Esempio
Gli esempi seguenti mostrano la funzione 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)
Gli esempi seguenti mostrano il comportamento della funzione con null_match impostato su 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)
Gli esempi seguenti mostrano il comportamento della funzione con null_match impostato su FALSE. Nota che la specifica del comportamento null_match nella funzione sovrascriverà l'impostazione di configurazione predefinita.
-- 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)