Funktion ARRAY_POSITIONS - Amazon Redshift

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_POSITIONS

Gibt ein Array von Positionen (Indizes) zurück, an denen das angegebene Element im Eingabearray vorkommt. Die Indizes basieren auf 0, wobei 0 für das erste Element, 1 für das zweite Element usw. steht. Gibt ein leeres Array zurück, wenn das Element nicht gefunden wird.

Syntax

ARRAY_POSITIONS( 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 an empty array.

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_POSITIONS gibt einen SUPER-Typ zurück.

Beispiel

Die folgenden Beispiele zeigen die Funktion 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)

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_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)

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_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)

Weitere Informationen finden Sie auch unter