DECLARE @sql nvarchar(4000)
SET @sql=N'insert into #t1(f1,f2,f3,f4,f5,f6)
select '
+case when @f1=0 then 'null' else 'f1' end+','
+case when @f2=0 then 'null' else 'f2' end+','
+case when @f3=0 then 'null' else 'f3' end+','
+case when @f4=0 then 'null' else 'f4' end+','
+'sum(f5),sum(f6) from #T'
exec(@sql)
SET @sql=N'insert into #t1(f1,f2,f3,f4,f5,f6)
select '
+case when @f1=0 then 'null' else 'f1' end+','
+case when @f2=0 then 'null' else 'f2' end+','
+case when @f3=0 then 'null' else 'f3' end+','
+case when @f4=0 then 'null' else 'f4' end+','
+'sum(f5),sum(f6) from #T'
exec(@sql)
解决方案 »
- SQl2000 remote server详解
- 我在本机做了一个试验,在查询一个超过100W记录的表(有110个字段)
- 刚下载了sqlserver2000的SP3A,可是无法安装。请大家帮忙。
- 看<SQL Server 2000数据库设计权威指南>Professional SQL Server 2000 Database Design 有感,求源程序
- 关于表操作速度的问题
- SQL 2005维护计划无法建立??
- 请问,如果执行一个包,命令我不太会打。
- 怎样删除SQLServer的事务日志
- win2000下,DEPHI+SQL SERVER写的ADO程序,想在局域网内的98下运行,该怎样连接数据库?
- 存储过程的问题
- 备份问题,恳请大伙给一好的方法
- 触发器和存储过程
case when @f2=0 then null else f2 end,
case when @f3=0 then null else f3 end,
case when @f4=0 then null else f4 end,
sum(f5),sum(f6) from #T1
group by case when @f1=0 then null else f1 end,
case when @f2=0 then null else f2 end,
case when @f3=0 then null else f3 end,
case when @f4=0 then null else f4 end
select case when @f1=0 then null else f1 end,
case when @f2=0 then null else f2 end,
case when @f3=0 then null else f3 end,
case when @f4=0 then null else f4 end,
sum(f5),sum(f6) from #T1
group by case when @f1=0 then null else f1 end,
case when @f2=0 then null else f2 end,
case when @f3=0 then null else f3 end,
case when @f4=0 then null else f4 end
SET @sql='insert into #t1(f1,f2,f3,f4,f5,f6)
select '
+case when @f1=0 then 'null' else 'f1' end+','
+case when @f2=0 then 'null' else 'f2' end+','
+case when @f3=0 then 'null' else 'f3' end+','
+case when @f4=0 then 'null' else 'f4' end+','
+'sum(f5),sum(f6) from #T'
+' group by '
+case when @f1=0 then '' else 'f1' end+','
+case when @f2=0 then '' else 'f2' end+','
+case when @f3=0 then '' else 'f3' end+','
+case when @f4=0 then '' else 'f4' end+','
if right(@sql,10)='group by ,'
set @sql=left(@sql,len(@sql)-10)
else
set @sql=left(@sql,len(@sql)-1)exec(@sql)