如何检查列表中的任何项目是否包含在列的名称中? - 急板 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;
我想知道如何检查列表中的任何项目是否包含在我尝试 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;