我有以下表格
ID FName LName
r1 Tom Patrik
r2 Jerry Blaku
r1 Ethan Lie
我想要以下内容
ID r1 r2 r1
FName Tom Jerry Ethan
LName Patrik Blaku Lie
注意ID中的值不是很明显.... !! 是否可以使用sql Server Pivot(或任何)命令实现此目的, 如果是,我将非常感谢TSQL
答案 0 :(得分:2)
我相信有更好的方法可以做到这一点。但是,因为你试图在这里调整多个列是一个丑陋的解决方案:
create table #temp
(
id int,
fname varchar(50),
lname varchar(50)
)
insert into #temp values(1, 'Tom', 'Patrik')
insert into #temp values(2, 'Jerry', 'Blaku')
SELECT 'fname', P.Tom as '1', P.Jerry as '2'
FROM
(
SELECT fname
FROM #temp
) I
PIVOT
(
min(fname)
FOR [fname] IN ([Tom], [Jerry])
) as P
UNION
SELECT 'lname', P.Patrik as '1', P.Blaku as '2'
FROM
(
SELECT lname
FROM #temp
) I
PIVOT
(
min(lname)
FOR [lname] IN ([Patrik], [Blaku])
) as P
drop table #temp