Condividi tramite


[ ] Operatore (segno tra parentesi quadre)

Si applica a:segno di spunta sì Databricks SQL segno di spunta sì Databricks Runtime

Restituisce un elemento di matrice o un valore della mappa in base a un indice o a una chiave.

Sintassi

expr [ keyExpr ]

Si noti che l'uso delle parentesi quadre qui è come testo letterale e non indica la sintassi facoltativa.

Argomenti

  • expr: espressione ARRAY o MAP.
  • keyExpr: se expr è una matrice numerica integrale. In caso contrario, un'espressione corrispondente al tipo della chiave dell'oggetto MAP.

Valori restituiti

Il tipo di risultato è il tipo di elemento dell'array o il tipo di valore dell'oggetto MAP.

Il primo elemento di una matrice è in corrispondenza dell'indice 0.

Se l'keyExpr non è una chiave valida per map expr Azure Databricks restituisce null.

Se l'keyExpr non è associato per l'errore ARRAY expr, Azure Databricks genera un errore INVALID_ARRAY_INDEX.

Nota

In Databricks Runtime, se spark.sql.ansi.enabled è false, l'operatore restituisce NULL anziché un errore out of bounds.

Condizioni di errore comuni

Esempi

> SELECT a[2] FROM VALUES(array(10, 20, 30)) AS T(a);
  30

> SELECT m[1] FROM VALUES(map(1, 'Hello', 2, 'World')) AS T(m);
  Hello

> SELECT array(1, 2, 3)[5];
  Error: INVALID_ARRAY_INDEX