declare @sql varchar(8000)
set @sql = 'select 编码,名称'
select @sql = @sql+', max(case [项目序号] when '''+cast(项目序号 as varchar)+''' then 数额 else 0 end ) AS [项目序号'+cast(项目序号 as varchar)+']'
from (select distinct 项目序号 from 表名) as a
set @sql = @sql +' from 表名 group by 编码,名称'
select @sql
exec (@sql)
让我做的话,我不会在SQL语句里一次完成,无疑直接在Sql上运行会给服务器加大负担,随着时间的增长而变慢。
我的建议是:使用SQL="Select * from dbo.表1"先全部下载下来,再存入数组中,你爱怎么倒腾怎么倒腾,速度绝对比你跑SQL语句快N倍。
我在外企的IT部门工作,当SQL数据量大的时候,我喜欢在SQL上执行最简单的操作,然后在本地做处理
搜索 行列转换