2014-05-19 2 views
0

내가 지금은 형태 아래에서 결과 집합을 원하는

ID Values FirstCol 2ndCol 3rdCol 4thCol 5thCol 
1 1stValue 5466 34556 53536 54646 566 
1 2ndValue 3544 957  667  1050 35363 
1 3rdValue 1040 1041 4647 6477 1045 
1 4thValue 1048 3546 1095 1151 65757 
2 1stValue 845  5466 86578 885  859 
2 2ndValue 35646 996  1300 7101 456467 
2 3rdValue 102  46478 565  657  107 
2 4thValue 5509 55110 1411 1152 1144 
3 1stValue 845  854  847  884  675 
3 2ndValue 984  994  4647 1041 1503 
3 3rdValue 1602 1034 1034 1055 466 
3 4thValue 1069 1610 6111 1124 1144 

같은 열이있는 테이블과 가치를 가지고에 하나 이상의 열 변환이 피벗 또는 케이스 한 Statment 가능합니다? 테이블 이름을 가정

ID Cols  1stValue 2ndValue 3rdValue 4thValue 
1 FirstCol 5466  3544  1040  1048 
1 2ndCol  34556  957   1041  3546 
1 3rdCol  53536  667   4647  1095 
1 4thCol  54646  1050  6477  1151 
1 5thCol  566   35363  1045  65757 
2 FirstCol 845   35646  102   5509 
2 2ndCol  5466  996   46478  55110 
2 3rdCol  86578  1300  565   1411 
2 4thCol  885   7101  657   1152 
2 5thCol  859   456467  107   1144 
3 FirstCol 845   984   1602  1069 
3 2ndCol  854   994   1034  1610 
3 3rdCol  847   4647  1034  6111 
3 4thCol  884   1041  1055  1124 
3 5thCol  675   1503  466   1144 

답변

1

이 트릭해야 t1입니다 :

SELECT * FROM t1 
UNPIVOT (val FOR name IN ([FirstCol], [2ndCol], [3rdCol], [4thCol], [5thCol])) unpiv 
PIVOT (SUM(val) FOR [Values] IN ([1stValue], [2ndValue], [3rdValue], [4thValue])) piv 

문제를 정렬있다를, FirstCol1stCol에, 다음 ORDER BY ID, name 필요한 순서에 넣어 것입니다 이름을 변경하는 것이 좋을 것입니다.

+0

@ Endrju 감사합니다. 내게 도움이되었습니다. –

+0

나는 이것을 찾고있었습니다 ... –