如何从临时表中计算动态字段名称

时间:2017-09-29 07:04:03

标签: sql-server dynamic temp-tables

我有一堆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

不确定如何获取所有动态列名称!如果有一个替代解决方案,所有的耳朵,但不能拼出每个动态列,太多,并将每周更改。

1 个答案:

答案 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