Zugreifen auf Array-Elemente - Amazon Athena

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.

Zugreifen auf Array-Elemente

Verwenden Sie für den Zugriff auf Array-Elemente den []-Operator, wobei 1 das erste Elemente bezeichnet, 2 das zweite Elemente usw., wie im folgenden Beispiel:

WITH dataset AS ( SELECT ARRAY[CAST(MAP(ARRAY['a1', 'a2', 'a3'], ARRAY[1, 2, 3]) AS JSON)] || ARRAY[CAST(MAP(ARRAY['b1', 'b2', 'b3'], ARRAY[4, 5, 6]) AS JSON)] AS items ) SELECT items[1] AS item FROM dataset

Diese Abfrage gibt Folgendes zurück:

+------------------------+ | item | +------------------------+ | {"a1":1,"a2":2,"a3":3} | +------------------------+

Verwenden Sie für den Zugriff auf die Array-Elemente an einer bestimmten Position (die Indexposition) die Funktion element_at() und geben Sie den Namen des Array und die Indexposition an:

  • Wenn der Index größer als 0 ist, gibt element_at() das angegebene Element zurück und zählt das Array dabei von Anfang bis Ende durch. Die Funktion verhält sich dabei wie der []-Operator.

  • Wenn der Index kleiner als 0 ist, gibt element_at() das angegebene Element zurück und zählt das Array dabei von Ende bis Anfang durch.

In der folgenden Abfrage wird ein Array words erstellt und das erste Element hello als first_word, das zweite Element amazon (vom Ende des Arrays aus gezählt) als middle_word und das dritte Element athena als last_word ausgewählt.

WITH dataset AS ( SELECT ARRAY ['hello', 'amazon', 'athena'] AS words ) SELECT element_at(words, 1) AS first_word, element_at(words, -2) AS middle_word, element_at(words, cardinality(words)) AS last_word FROM dataset

Diese Abfrage gibt Folgendes zurück:

+----------------------------------------+ | first_word | middle_word | last_word | +----------------------------------------+ | hello | amazon | athena | +----------------------------------------+