

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à.

# Accedere agli elementi della matrice
<a name="accessing-array-elements"></a>

Per accedere agli elementi della matrice, utilizza l'operatore `[]`, dove 1 specifica il primo elemento, 2 specifica il secondo e così via, come in questo esempio:

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

Questa query restituisce:

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

Per accedere agli elementi di una matrice in una determinata posizione (nota come posizione indice), utilizza la funzione `element_at()` e specifica il nome della matrice e la posizione indice:
+ Se l'indice è maggiore di 0, `element_at()` restituisce l'elemento specificato, contando dall'inizio alla fine della matrice. Si comporta come l'operatore `[]`.
+ Se l'indice è minore di 0, `element_at()` restituisce l'elemento, contando dalla fine all'inizio della matrice.

La seguente query crea una matrice `words` e seleziona il primo elemento `hello` come `first_word`, il secondo elemento `amazon` (contando dalla fine della matrice) come `middle_word` e il terzo elemento `athena` come `last_word`.

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

Questa query restituisce:

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