Amazon Redshift unterstützt UDFs ab Patch 198 nicht mehr die Erstellung von neuem Python. Das bestehende Python UDFs wird bis zum 30. Juni 2026 weiterhin funktionieren. Weitere Informationen finden Sie im Blog-Posting
Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.
Funktion ARRAY_POSITION
Gibt die Position (Index) des ersten Vorkommens eines angegebenen Elements in einem Array zurück. Der Index basiert auf 0, wobei 0 für das erste Element, 1 für das zweite Element usw. steht. Gibt -1 zurück, wenn das Element nicht im Array gefunden wird.
Die Funktion gibt nur die Position des ersten Vorkommens zurück. Um alle Vorkommen zu finden, sollten Sie die Funktion ARRAY_POSITIONS Funktion verwenden.
Syntax
ARRAY_POSITION( array, value [, null_match] )
Argumente
- Array
-
Ein SUPER-Ausdruck, der das Array angibt, in dem gesucht werden soll.
- value
-
Ein Wert, der das Element angibt, nach dem gesucht werden soll.
- null_match
-
Ein boolescher Wert, der angibt, wie NULL-Werte behandelt werden:
- 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übereinstimmung = 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.
Der Standardwert ist „true“.
Die standardmäßige NULL-Behandlung kann auch mit der Konfigurationsoption angegeben werden:
-- same as null_match = TRUE SET default_array_search_null_handling to TRUE;
Rückgabetyp
Die Funktion ARRAY_POSITION gibt einen INT-Typ zurück.
Beispiel
Die folgenden Beispiele zeigen die Funktion 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)
Die folgenden Beispiele zeigen das Funktionsverhalten, wenn null_match auf TRUE gesetzt ist.
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)
Die folgenden Beispiele zeigen das Funktionsverhalten, wenn null_match auf FALSE gesetzt ist. Beachten Sie, dass die Angabe des null_match-Verhaltens in der Funktion die Standardkonfigurationseinstellung überschreibt.
-- 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)