我有一堆0分散在许多列中,这些列是动态命名的日期(例如2017_09_28)。我想隐藏所有这些动态命名列的总和为n的行。
假设我必须创建一个select语句......
SELECT * FROM (
Select *, (dynamic column 1 + dynamic column 2 + dynamic column 3) sum
FROM temp table) sbqy WHERE sum != 0
不确定如何获取所有动态列名称!如果有一个替代解决方案,所有的耳朵,但不能拼出每个动态列,太多,并将每周更改。
答案 0 :(得分:1)
您可以使用动态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