如何从 temp table 中求和动态字段名称

How to SUM dynamic field names from temp table

我有 table a,其中一串 0 散布在许多列中,这些列是动态命名的日期(例如 2017_09_28)。我想隐藏所有这些动态命名列的总和为 0 的行。

假设我必须创建一个 select 语句...

SELECT * FROM (
Select *, (dynamic column 1 + dynamic column 2 + dynamic column 3) sum
FROM temp table) sbqy WHERE sum != 0

不确定如何获取所有动态列名!如果有替代解决方案,请洗耳恭听,但无法拼出每个动态列,太多并且会每周更改。

您可以使用动态 sql 创建字符串,然后 运行 使用 sp_executesql

declare @cmd varchar(4000) = ''

set @cmd = 'select * from temptable where ' + case when someLogicHere then 'dynamicColomn1' end + case when someLogicHere  then '+ dynamicColomn2' end
 + case when someLogicHere  then 'dynamicColomn3' end + ' !=0'

--print(@cmd)
exec sp_executesql @cmd