首页 > 解决方案 > 如何检查列表中的任何项目是否包含在列名中?- 快速 SQL

问题描述

我想知道如何检查列表中的任何项目是否包含在我要选择的列的名称中。

假设我有一个类似的列表:list = ['apple', 'banana', 'cat']. 如何检查列名是否包含该列表中的任何项目?

我最初的想法类似于:

SELECT column_name,
CASE WHEN column ('apple', 'banana', 'cat') IN column_name THEN true ELSE NULL END AS flag
FROM information_schema.columns;

但显然这行不通。我也在研究这个SUBSTR函数,但不确定它如何与值列表一起工作。

此外,我提供的更多的是一个最小可重现的例子。实际列表将包含大约 40 个元素。将不胜感激任何帮助,谢谢!

标签: sqllistsubstringcontainspresto

解决方案


您可以使用正则表达式:

SELECT column_name,
       (CASE WHEN REGEXP_LIKE(column_name, 'apple|banana|cat') THEN true ELSE NULL
        END) AS flag
FROM information_schema.columns;

推荐阅读