如何在行中转动列标题

时间:2012-03-19 19:07:48

标签: sql sql-server-2008

我有以下表格

   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

1 个答案:

答案 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
相关问题