sql - 如何检查列表中的任何项目是否包含在列名中?- 快速 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 个元素。将不胜感激任何帮助,谢谢!
解决方案
您可以使用正则表达式:
SELECT column_name,
(CASE WHEN REGEXP_LIKE(column_name, 'apple|banana|cat') THEN true ELSE NULL
END) AS flag
FROM information_schema.columns;
推荐阅读
- python - conda 从 bash 脚本导出环境
- oracle - 在oracle中执行select * from中的立即使用
- asp.net - TLS 握手问题 - 身份验证失败
- javascript - 我想将图像作为道具传递到另一个页面
- python - 调试或跳过顺序 pytorch 模型的最佳方法
- database - 如何处理表中同一行的不同类型的数据?
- c++ - 创建实例模板
- python - 在 tensorflow.keras 中不包括 NaN 的平均池化?
- javascript - 导入 PDF 导致错误 URIError: Pathname cannot be decoded
- c - 如何禁用 proc 文件的读取或写入功能?