

# Acceso a los elementos de la matriz
<a name="accessing-array-elements"></a>

Para obtener acceso a los elementos de una matriz, utilice el operador `[]` y especifique 1 para el primer elemento, 2 para el segundo elemento y así sucesivamente, tal y como se muestra en el siguiente ejemplo:

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

Esta consulta devuelve:

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

Para obtener acceso a los elementos de una matriz en una determinada posición (conocida como posición de índice), utilice la función `element_at()` y especifique el nombre de la matriz y la posición de índice:
+ Si el índice es mayor que 0, `element_at()` devuelve el elemento que usted especifique, contando desde el principio hasta el final de la matriz. Actúa como el operador `[]`.
+ Si el índice es inferior a 0, `element_at()` devuelve el elemento contando desde el final hasta el principio de la matriz.

La siguiente consulta crea una matriz `words` y selecciona el primer elemento `hello` de esta como `first_word`, el segundo elemento `amazon` (contando a partir del final de la matriz) como `middle_word` y el tercer elemento `athena`, como la `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
```

Esta consulta devuelve:

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