Проверка наличия ключа в карте значений Presto - PullRequest
0 голосов
/ 30 марта 2019

Я новичок в 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?

1 Ответ

4 голосов
/ 30 марта 2019

Вы можете найти значение в map, если ключ присутствует с element_at, например:

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