MAPVALUES
返回表示来自 VMap 顶层值的字符串。此转换函数需要 OVER()
子句。
语法
MAPVALUES (VMap-data)
参数
-
VMap-data
任何 Vmap 数据。Vmap 的存在形式可以是:
-
Flex 表的
__raw__
列 -
从映射函数返回的数据(示例) MAPLOOKUP
-
其他数据库内容
-
-
max_value_length
- 在
__raw__
列中,指定函数可以返回的值的最大长度。大于max_value_length
的值会导致查询失败。默认为 VMap 列长度和 65K 中较小的值。
示例
下面的例子显示如何使用具有 darkmountain
的 over()
子句查询 over(PARTITION BEST)
flex 表(在本例中使用 mapvalues()
子句)。
=> SELECT * FROM (SELECT MAPVALUES(darkmountain.__raw__) OVER(PARTITION BEST) FROM darkmountain) AS a;
values
---------------
29029
34.1
Everest
mountain
29029
15.4
Mt St Helens
volcano
17000
12.2
Denali
mountain
14000
22.8
Kilimanjaro
mountain
50.6
Mt Washington
mountain
(19 rows)
指定 MAPVALUES 可以返回的值的最大长度
=> SELECT MAPVALUES(__raw__ USING PARAMETERS max_value_length=100000) OVER() FROM mapper;
keys
-------------
five_Map
four
one
six
three_Array
two
(6 rows)