SQL에서 피벗 (pivot) 할 열을 가져 오는 데 문제가 있습니다. 한 열의 상위 6 개 결과를 행으로 피벗하고 싶습니다. 내가 선회하고있어 열은 시작보다 작거나 6 개 이상의 결과를 얻을 수 있지만열의 상위 6 개 항목을 SQL의 행으로 피벗시키는 방법
내 표는 다음과 같습니다 상위 6 이외에는 아무 것도 무시해야합니다 :
ID | GroupID | CodeNum
----------------------
1 | 1 | 111
2 | 1 | 222
3 | 1 | 333
4 | 1 | 444
5 | 1 | 555
6 | 1 | 666
7 | 1 | 777
8 | 2 | 111
9 | 2 | 888
10 | 3 | 999
을 내가 원하는 내
GroupID | Code1 | Code2 | Code3 | Code4 | Code5 | Code6
-------------------------------------------------------
1 | 111 | 222 | 333 | 444 | 555 | 666
2 | 111 | 888 | | | |
3 | 999 | | | | |
내가 해봤 코드 : 출력은, 다음과 같이합니다
SELECT GroupID
, [Code1] = CASE WHEN rn = 1 THEN CodeNum END
, [Code2] = CASE WHEN rn = 2 THEN CodeNum END
, [Code3] = CASE WHEN rn = 3 THEN CodeNum END
, [Code4] = CASE WHEN rn = 4 THEN CodeNum END
, [Code5] = CASE WHEN rn = 5 THEN CodeNum END
, [Code6] = CASE WHEN rn = 6 THEN CodeNum END
FROM (
SELECT TOP 6 GroupID
, rn = ROW_NUMBER() OVER (ORDER BY ID)
, CodeNum
FROM Table1
) q
GROUP BY
GroupID
을하지만 뻥 g
CodeNum이 GroupID 당 1 - 12 개의 값을 가질 수있는 방법이 있습니까?