如何检查列表中的任何项目是否包含在列的名称中? - 急板 SQL

How to check if any item within a list is contained in a column's name? - Presto SQL

我想知道如何检查列表中的任何项目是否包含在我尝试 select 的列的名称中。

假设我有一个列表: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 个元素。非常感谢任何帮助,谢谢!

您可以使用正则表达式:

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