需要输入sql查询。我见过例子,但所有例子都使用了聚合函数,因此发布了问题..
我的表看起来像
Values ID Name
59.781437 7053 263
16.478765 7053 264
38.950151 7054 263
72.01498 7054 264
我想生成如下数据(有或没有支点)
ID 263 264
7053 59.781437 16.478765
7054 38.950151 72.01498
答案 0 :(得分:2)
尝试此查询 -
select * from
(
select * from MyTable
) as src
pivot(
sum([values])
for Name in ([263], [264])
) as pvt
当“名称”列可以包含未指定数量的值时,请改为使用 -
create table ##tmp(
name varchar(50) null
)
insert into ##tmp
select distinct name from mytable
DECLARE @result nvarchar(max)
SET @result = ''
SELECT @result = @result + '[' + cast([name] as varchar(50)) + N'],'
FROM [##tmp]
SET @result = LEFT(@result, LEN(@result) - 1)
--PRINT @result
declare @sql varchar(max) = ''
SET @sql =
'select * from' +
'(
select * from MyTable
) as src
pivot(
sum([values])
for Name in (' + @result + ')' +
+ ') as pvt'
exec (@sql)
drop table ##tmp
关键点 - 我们使用简单查询来进行上述查询。然后,我们使用动态sql执行上面的查询。