在SQL中根据给定的数据值查找列
我想简化(或者更准确地说,泛化)这个查询:
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导航站,无授权禁止任何主体转载、抄袭、复制内容,亦不得私自架设镜像站点。一经侵权,本站将通过法律途径追责。