使用数组创建映射 - Amazon Athena
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 AWS 服务入门

如果我们为英文版本指南提供翻译,那么如果存在任何冲突,将以英文版本指南为准。在提供翻译时使用机器翻译。

使用数组创建映射

映射是由在 Athena 中可用的数据类型组成的键值对。要创建映射,请使用 MAP 运算符并将其传递给两个数组:第一个是列 (键) 名称,第二个是值。数组中的所有值都必须具有相同类型。如果有任何映射值数组元素需要具有不同类型,您可以以后转换它们。

示例

此示例会从数据集中选择用户。它使用 MAP 运算符并将其传递给两个数组。第一个数组包含列名称的值,例如“第一个”、“最后一个”和“年龄”。第二个数组包含每个列的值,例如“Bob”、“Smith”、“35”。

WITH dataset AS ( SELECT MAP( ARRAY['first', 'last', 'age'], ARRAY['Bob', 'Smith', '35'] ) AS user ) SELECT user FROM dataset

此查询返回:

+---------------------------------+ | user | +---------------------------------+ | {last=Smith, first=Bob, age=35} | +---------------------------------+

您可以通过选择字段名称后跟 [key_name] 来检索 Map 值,如以下示例所示:

WITH dataset AS ( SELECT MAP( ARRAY['first', 'last', 'age'], ARRAY['Bob', 'Smith', '35'] ) AS user ) SELECT user['first'] AS first_name FROM dataset

此查询返回:

+------------+ | first_name | +------------+ | Bob | +------------+