是的我知道,这个问题已被问过很多次,但在阅读完所有帖子后,我发现没有一个符合我需要的答案。那么,继承人我的问题。我想取一列值并将它们转换成6列的行。
I want to take this...... And turn it into this.......................
G Letter Date Code Ammount Name Account
081278 G 081278 12 00123535 John Doe 123456
12
00123535
John Doe
123456
我在一个名为TempTable的表中的一列中有110000个值。我需要显示所有值,因为每行都是自身的实体。例如,所有Letter,Date,Code,Ammount,Name和Account列都有一个唯一条目。我知道聚合函数是必需的,但是有一种解决方法可以让我得到这个想要的结果吗?
答案 0 :(得分:1)
只需使用MAX汇总
如果一行=一列(每组6行),则单个值的MAX =该行值。
但是,您发布的数据不足。我没有看到任何东西:
没有隐含的行顺序或数字可依赖于生成组
答案 1 :(得分:0)
不幸的是,根据MSDN Max Capacity,SQL 2008 select语句中的最大列数为4,096。
您可以考虑使用动态SQL来获取您想要执行的操作,而不是使用数据透视表。
Declare @SQLColumns nvarchar(max),@SQL nvarchar(max)
select @SQLColumns=(select '''+ColName+'''',' from TableName for XML Path(''))
set @SQLColumns=left(@SQLColumns,len(@SQLColumns)-1)
set @SQL='Select '+@SQLColumns
exec sp_ExecuteSQL @SQL,N''