MAP 类型

适用于:Databricks SQL check marked yes Databricks Runtime

表示由一组键值对构成的值。

语法

MAP <keyType, valueType>
  • keyType:MAP 之外用于指定密钥的任何数据类型。
  • valueType:用于指定值的任何数据类型。

限制

MAP 类型支持任何大于或等于 0 的映射基数。

密钥必须唯一,不能为 NULL。

MAP 不是可比较的数据类型。

文本

有关如何生成文本映射值的详细信息,请参阅 MAP 函数

请参阅 [ ] 运算符,详细了解如何按键从映射中检索值。

示例

> SELECT map('red', 1, 'green', 2);
  {red->1, green->2}

> SELECT typeof(CAST(NULL AS MAP<TIMESTAMP, INT>));
  MAP<TIMESTAMP, INT>

> SELECT map(array(1, 2), map('green', 5));
  {[1, 2]->{green->5}}

> SELECT CAST(map(struct('Hello', 'World'), 'Greeting') AS MAP<STRUCT<w1:string, w2:string>, string>);
  {{Hello, World}->Greeting}

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

> SELECT map('red', 1) = map('red', 1);
  Error: EqualTo does not support ordering on type map<string,int>