在SQL中根据给定的数据值查找列

编程语言 2026-07-09

我想简化(或者更准确地说,泛化)这个查询:

SELECT * FROM MRE_TABLE
WHERE col1 = 'my-data-val' OR col2 = 'my-data-val' -- OR ... there are 68 columns

我真的不想为四个不同的数据值写67个 OR条件。

解决方案

最简单的做法:

SELECT 
    STRING_AGG(COLUMN_NAME + ' = ''my-data-val''', ' OR ') AS where_clause
FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_NAME = 'MRE_TABLE'
站内所有文章版权归属LeftHeroAI导航站,无授权禁止任何主体转载、抄袭、复制内容,亦不得私自架设镜像站点。一经侵权,本站将通过法律途径追责。

相关文章