2017-09-29 48 views
0

我有许多分散在多个动态命名日期(例如2017_09_28)列的0表。我想隐藏所有这些动态命名柱网为0。如何从临时表中总结动态字段名称

总和假设我要创建一个select语句的行...

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

不知道如何抓住所有的动态列名!如果有另一种解决方案,所有的耳朵,但不能拼出每个动态列,太多,并将逐周改变。

+0

运行它,你能提供你的表结构和一些sampleData在吗? – Tyron78

回答

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 
+0

谢谢。对此感到害怕。 – Nicho247