繁体   English   中英

如何使用 presto 获取字符串列中的第一个元组

[英]how to get the first tuple in a string column using presto

所以我在表中有一个列,该列的数据类型是varchar,但它包含一个元组数组,所以我需要提取表中数组的第一个元组

这是原始表

用户身份 注释
1 [["你好世界",1],["你好吗",1],["这是那个",1]]
2 [["你好",1],["怎么样",1],["这个",1]]

这就是我要找的,请注意“评论”列的数据类型是varchar

用户身份 注释
1 你好世界
2 你好

json_extract_scalar应该可以解决问题:

WITH dataset (userid, comments) AS (
    VALUES  (1, json '[["hello world",1],["How did you",1],[" this is the one",1]]'),
            (2, json '[["hello ",1],["How ",1],[" this",1]]')
)

--query
select userid,
    json_extract_scalar(comments, '$[0][0]')
from dataset

输出:

用户身份 注释
1 你好世界
2 你好

请注意,它只允许提取单个值,如果您想要多个值,则需要进行一些转换(类似于此处所做的,但使用数组,例如array(json) )。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM