检查键是否存在于Presto值映射中

时间:2019-03-29 22:04:52

标签: presto

我是Presto的新手,无法完全确定如何检查地图中是否存在钥匙。当我运行SELECT查询时,将返回以下错误消息:

Key not present in map: element

SELECT value_map['element'] FROM
mytable
WHERE name = 'foobar'

添加AND contains(value_map, 'element')无效

数据类型是字符串数组

SELECT typeof('value_map') FROM mytable 

返回varchar(9)

我如何只选择value_map中存在“ element”的记录?

1 个答案:

答案 0 :(得分:3)

如果密钥与element_at一起出现,您可以在map中查找值,如下所示:

SELECT element_at(value_map, 'element')
FROM ...
WHERE element_at(value_map, 'element') IS NOT NULL