- 类别:
半结构化和结构化数据函数 (映射)
MAP_PICK¶
返回一个新 MAP,它包含现有 MAP 中的指定键值对。
若要标识要包含在新映射中的键值对,请将键作为实参传递,或传递给包含键的数组。
如果输入映射中不存在指定的键,则忽略该键。
语法¶
MAP_PICK( <map>, <key1> [, <key2>, ... ] )
MAP_PICK( <map>, <array> )
实参¶
map
输入映射。
key1,key2
一个或多个键,用于标识要包含于返回映射之中的键值对。
array
一个键数组,用于标识要包含于返回映射之中的键值对。您可以指定半结构化 ARRAY 或结构化 ARRAY。
返回¶
返回一个新 MAP,它包含现有 MAP 中的一些键值对。
示例¶
创建一个新的映射,其中包含现有映射中三个键值对中的两个:
SELECT MAP_PICK({'a':1,'b':2,'c':3}::MAP(VARCHAR,NUMBER),'a', 'b')
AS new_map;
+-----------+
| NEW_MAP |
|-----------|
| { |
| "a": 1, |
| "b": 2 |
| } |
+-----------+
在前面的示例中,键作为实参传递给 MAP_PICK。您还可以使用数组来指定键:
SELECT MAP_PICK({'a':1,'b':2,'c':3}::MAP(VARCHAR,NUMBER), ['a', 'b'])
AS new_map;
+-----------+
| NEW_MAP |
|-----------|
| { |
| "a": 1, |
| "b": 2 |
| } |
+-----------+