我是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”的记录?
答案 0 :(得分:3)
如果密钥与element_at
一起出现,您可以在map
中查找值,如下所示:
SELECT element_at(value_map, 'element')
FROM ...
WHERE element_at(value_map, 'element') IS NOT NULL