我在 presto 中有一个表,名为(“映射”)的一列将键值对作为字符串
从 hello 中选择映射;
例如:{“foo”:“baar”,“foo1”:“bar1”}
我想将“映射”列转换为 MAP
就像从 hello 中选择 CAST("mappings" as MAP) 一样;
这会在 presto 中引发错误。我们如何将其翻译成地图?
没有规范的字符串表示形式MAP
在 Presto/Trino 中,所以无法将其直接投射到MAP(VARCHAR, VARCHAR)
。但是,如果您的字符串包含 JSON 映射,则可以使用json_parse函数将字符串转换为值JSON
输入并将其转换为 SQLMAP
via a cast.
Example:
WITH
data(c) AS (
VALUES '{"foo": "baar", "foo1": "bar1"}'
),
parsed AS (
SELECT cast(json_parse(c) as map(varchar, varchar)) AS m
FROM data
)
SELECT m['foo'], m['foo1']
FROM parsed
产生:
_col0 | _col1
-------+-------
baar | bar1
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)