2012-04-17 3 views
1

는이 전 다음과 같은 반환하는 간단한 선택 쿼리 있다고 가정 해 봅시다 :반환 열을 수직으로

ID Name1 Name2 Description1 Description2 Notes1 Notes2 
1  A  B  AA    BB  AAA BBB 
2  C  D  CC    DD  CCC DDD 

을 다음과 같이 나는 데이터 집합을 반환 할 : SQL Server의 그 일의

ID ColumnName 1st 2nd 
1 Name   A B 
1 Description AA BB 
1 Notes  AAA BBB 
2 Name   C D 
2 Description CC CC 
2 Notes  DDD DDD 

어떤 방법을 2008-r2? PIVOT에 대한 작업 인 것처럼 보입니다. 그러나 PIVOT을 사용하여이를 달성하는 방법에 대해 혼란스러워합니다.

+0

선택 쿼리의 열이 동적 SQL이 아닌 동적 일 수있는 경우. 그것은 SQL 쿼리로 끝나야합니까? – mellamokb

답변

2

실제 값으로 패치하는 것이 고정적이거나 너무 많지 않다는 가정하에 이것을 사용할 수 있습니다 고통스러운 :

SELECT ID, 'Name' ColumnName, Name1 '1st', Name2 '2nd' 
FROM YourTable 
UNION 
SELECT ID, 'Description' ColumnName, Description1 '1st', Description2 '2nd' 
FROM YourTable 
UNION 
SELECT ID, 'Notes' ColumnName, Notes1 '1st', Notes2 '2nd' 
FROM YourTable 

데이터 정규화가 중요한 이유 중 또 다른 좋은 예입니다.

+0

+1 http://www.sqlfiddle.com/#!3/d796b/3 – mellamokb

+0

열 데이터 유형 중 하나가 문자열이 아닌 경우 위의 대답이 실패합니다 ... – Baz1nga