查询中的 Athena/Presto 拆分字符串

问题描述

是否可以对 IN 查询使用逗号分隔的字符串?

我想使用字符串 a,b,c

执行以下查询

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

示例 - select * from tablename where colname in (split_string('a,c'))

解决方法

您可以使用 split(string,delimiter) 拆分字符串和布尔函数 contains(array,element) 来检查数组是否包含值:

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