Разделенная строка Athena / Presto для запроса In

#sql #arrays #split #presto #amazon-athena

#sql #массивы #разделить #presto #amazon-athena

Вопрос:

Можно ли использовать строку, разделенную запятыми, для IN запроса?

Я хотел бы выполнить следующий запрос, используя строку a,b,c

select * from tablename where colname in ('a', 'b', 'c')

Пример — select * from tablename where colname in (split_string('a,b,c'))

Ответ №1:

Вы можете использовать split(string,delimiter) для разделения строки и логическую функцию contains(array, element) , чтобы проверить, содержит ли массив значение:

  select * from tablename where contains(split('a,b,c',','),colname)