[ ](方括号)运算符

适用于:勾选“是” Databricks SQL 勾选“是” Databricks Runtime

返回给定索引或键的数组元素或映射值。

语法

expr [ keyExpr ]

请注意,此处使用的方括号用作文字文本,并不表示可选语法。

参数

  • expr:一个 ARRAY 或 MAP 表达式。
  • keyExpr:如果 expr 是一个 ARRAY,则为整数数值, 否则为与 MAP 的键类型匹配的表达式。

返回

结果类型是 ARRAY 的元素类型或 MAP 的值类型。

ARRAY 的第一个元素位于索引 0 处。

如果 keyExpr 不是 MAP expr 的有效密钥,Azure Databricks 会返回 null。

如果 keyExpr 超出 ARRAY expr 的边界,则 Azure Databricks 会引发 INVALID_ARRAY_INDEX 错误。

注意

在 Databricks Runtime 中,如果 spark.sql.ansi.enabledfalse,则运算符返回 NULL 而不是一个超出范围错误。

示例

> 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