Auf Array-Elemente zugreifen - Amazon Athena

Auf Array-Elemente zugreifen

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 | +----------------------------------------+