일부 열이있는 테이블 테이블이 있고 다른 테이블의 열로 열 값을 변환하려고합니다.행을 새 테이블의 열로 변환
내 요구 사항의 스크린 샷 하나를 첨부하고 있습니다.
위의 표는 내 기본 표이며 아래 표는 내 필수 표입니다. 감사합니다.
일부 열이있는 테이블 테이블이 있고 다른 테이블의 열로 열 값을 변환하려고합니다.행을 새 테이블의 열로 변환
내 요구 사항의 스크린 샷 하나를 첨부하고 있습니다.
위의 표는 내 기본 표이며 아래 표는 내 필수 표입니다. 감사합니다.
을 나는 회전이 충분히 될 것 같아요
SELECT *
FROM (
SELECT [Action], [Key], 'Old' + Old as [a], OldValue as [Value]
FROM Table1
UNION ALL
SELECT [Action], [Key], 'New' + New, NewValue
FROM Table1
) as p
PIVOT (
MAX([Value]) FOR [a] IN ([OldCol1],[OldCol2],[OldCol3],[NewCol1],[NewCol2],[NewCol3],[NewCol45])
) as pvt
출력 : 다음 'Old
많은 및 New` 값이있는 경우
Action Key OldCol1 OldCol2 OldCol3 NewCol1 NewCol2 NewCol3 NewCol45
I 123 NULL NULL NULL NULL NULL NULL Sun
U 123 Dog Cat Honey Dog Mouse Bee NULL
당신은 동적 SQL이 필요
덕분에 지금은 내 실수였습니다. –
내 대답이 도움이된다면 좋을 것입니다! :) – gofr1
제안 된 복제물이 거기에있는 길을 열어 주지만 실제로는 피벗 해제하고 다음과 같이 피벗해야합니다.
(. 아, 그리고 DDL은 감사 이미지를 게시하고 우리가 입력 및/또는 추측에 저장하지 마십시오.)
CREATE TABLE #Test(Action char, [Key] INT, Old varchar(5), OldValue varchar(5), New varchar(5), NewValue varchar(5));
INSERT INTO #Test VALUES
('U', 123, 'Col1','Dog','Col1','Dog'),
('U', 123, 'Col2','Cat','Col2','Mouse'),
('U', 123, 'Col3','Honey','Col3','Bee'),
('I', 123, NULL,NULL,'Col45','Sun');
SELECT PVT.Action
,PVT.[Key]
,PVT.OldCol1
,PVT.OldCol2
,PVT.OldCol3
,PVT.NewCol1
,PVT.NewCol2
,PVT.NewCol3
,PVT.NewCol45 FROM (
SELECT [Action]
,[Key]
,Label
,Value
FROM #Test
CROSS APPLY (VALUES ('Old'+Old, OldValue), ('New'+New, NewValue)) c(label, value)
)src
PIVOT
(
MAX(VALUE) FOR Label IN (OldCol1, NewCol1, OldCol2, NewCol2, OldCol3, NewCol3, NewCol45)
)PVT
ORDER BY PVT.Action Desc
Action Key OldCol1 OldCol2 OldCol3 NewCol1 NewCol2 NewCol3 NewCol45
------ ----------- ------- ------- ------- ------- ------- ------- --------
U 123 Dog Cat Honey Dog Mouse Bee NULL
I 123 NULL NULL NULL NULL NULL NULL Sun
(2 row(s) affected)
이것은 또한 작동하지만 grof1의 솔루션은 내가 갇혀있는 곳 근처에있는 것이 었습니다. 어쨌든 고마워요. –
사례 통계를 사용하여 mysql을 열로 간단하게 피벗시킬 수 있습니다. –
@Jens - 죄송합니다. 실수로 SQL Server 2012를 사용하고 있습니다. –
[SQL 서버의 행을 열로 효율적으로 변환] (http : // stackoverflow. com/questions/15745042/efficient-convert-rows-to-columns-in-sql-server) – Ash