2012-03-19 2 views
0

내가 뭔가를하고 싶은행에 열 머리글을 돌리고 방법

ID FName LName 
    r1 Tom  Patrik 
    r2 Jerry Blaku 
    r1 Ethan Lie 

을 다음과 같은 테이블이 있습니다! SQL Server Pivot (또는 any) 명령을 사용하여이 작업을 수행 할 수 있습니까? 그렇다면 실제로 TSQL에 감사 드리겠습니다.

+0

(복제) 동적 피벗이라고합니다. 보세요. http://stackoverflow.com/questions/8327261/dynamic-sql-pivot-in-sql-server http://www.simple-talk.com/community/blogs/andras/archive/2007/09/14/37265 .aspx –

답변

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 
+0

답변 해 주셔서 감사합니다. 실제로는 매우 복잡한 쿼리가 있으며 각 행에 피벗을 쓸 수 없습니다. 필자는 피벗 (Pivot)을 사용하여이 작업을 수행하는 방법에 대한 아이디어를 얻기 위해 매우 쉬운 테이블을 언급했습니다. –

+0

동적 SQL 피벗을 사용할 수 있습니다. – Taryn

관련 문제