Presto:从字符串列中提取值,这类似于映射,但不是映射



我有一个表:

Name  pets
--------------
Andy  {"cat":2, "dog":1, "bird":4 ,xxx}
John  {"dog":3, "cat":1, "bird":{}, uyx}
Mary  {"dog":2, "duck":{}, "cat":1, zzz}

pets列是一个映射,但表创建者创建的是一个字符串,其中包含一些附加字符。所以我不能使用cast(json_parse(pets) as map(varchar, varchar)) AS m

在这种情况下,如果我想找出"cat"的值,我该怎么做?非常感谢。

您可以使用regexp_extract():

select t.*,
regexp_extract(pets, '"cats":([^,]*)', 1)
from t;

相关内容

最新更新