SQL

2010-02-04 2 views
0
의 테이블에 한 행의 데이터를 확인

내가 열 이름과 함께 아래와 같은 결과를 얻을 수 T-SQL을 사용하려면SQL

SWD Lead QA Lead PD Lead Business Manager 
AAAA  BBBB CCCC DDDD 

같은 기록이있다

SWD Lead   AAAA 
QA Lead   BBBB 
PD Lead   CCCC 
Business Manager DDDD 

합니까 아무도 그것을하는 방법을 안다?

최고 감사합니다,

+0

Server 버전 : 동일한 효과를 달성하기 위해 이런 일을 할 수있는 이전의 서버 버전에

ColA ColB SWD Lead AAAA QA Lead BBBB PD Lead CCCC Business Manager DDDD 

? –

+0

항상 한 행만 표시됩니까? –

+0

SQL SERVER 2005. –

답변

3

당신이 UNPIVOT를 사용할 수있는 SQL 서버 2005을 사용하고 있기 때문에. 이는 해당 페이지의 예에서 수정 :

SELECT ColA, ColB 
FROM Table1 
UNPIVOT (ColB FOR ColA IN ([SWD Lead], 
          [QA Lead], 
          [PD Lead], 
          [Business Manager])) AS unpvt; 

결과 :

SELECT 'Col1', Col1 FROM Table1 
UNION ALL 
SELECT 'Col2', Col2 FROM Table1 
UNION ALL 
SELECT 'Col3', Col3 FROM Table1 
UNION ALL 
SELECT 'Col4', Col4 FROM Table1 
+0

SELECT 콜라 FROM COLB * P (dbo.table FROM * 해당) UNPIVOT (콜라 IN COLB ('QA 리드」, 「SW 리드') FOR) unpvt로서 "메시지 102, 수준 15, 상태 1, 줄 2 '*'근처의 구문이 잘못되었습니다. 메시지 102, 수준 15, 상태 1, 줄 4 'p'근처의 구문이 잘못되었습니다. " –

+0

+1, 유용한 대답. 약간의 수정 - 이것을 관리 스튜디오에 붙여 넣을 때 'as my_pivot_table_name;'이 필요했습니다. 끝 부분에서 –

+0

@ Yonwei Xing : 첫 번째 발신 번호 뒤에 *가 잘못되었습니다. 가짜 열 이름을 사용하여 질문을 게시하는 대신 실제 열 이름을 질문에 포함 시키십시오. 사용자의 상황에서 정확하게 작동하도록 쿼리를 만들 수 있으므로 전혀 수정할 필요가 없습니다. 이렇게하면 쿼리가있는 그대로 작동하므로 열 이름을 변경하는 동안 실수를 할 위험이 줄어 듭니다. –