다음 열이있는 레거시 테이블이 있습니다. 다음과 같이여러 열을 행으로 변환
Create Table test
(id varchar(50)
, code1 varchar(50)
, codeDesc1 varchar(50)
, code2 varchar(50)
, codeDesc2 varchar(50)
, code3 varchar(50)
, codeDesc3 varchar(50)
, code4 varchar(50)
, codeDesc4 varchar(50)
, code5 varchar(50)
, codeDesc5 varchar(50)
, code6 varchar(50)
, codeDesc6 varchar(50)
)
insert into test (id, code1, codeDesc1, code2, codeDesc2, code3, codeDesc3, code4, codeDesc4, code5, codeDesc5, code6, codeDesc6)
values ('1','100.1', 'first code','100.2', 'Second code','100.3', 'Third code','100.4', 'Fourth code','100.5', 'Fifth code','100.6', 'Sixth code')
insert into test (id, code1, codeDesc1, code2, codeDesc2, code3, codeDesc3, code4, codeDesc4, code5, codeDesc5, code6, codeDesc6)
values ('2','100.1', 'first code','100.2', 'Second code','100.3', 'Third code','100.4', 'Fourth code','100.5', 'Fifth code','100.6', 'Sixth code')
select * from test
반환 :
id, code1, codeDesc1, code2, codeDesc2, code3, codeDesc3, code4, codeDesc4, code5, codeDesc5, code6, codeDesc6
1,100.1, first code,100.2, Second code,100.3, Third code,100.4, Fourth code,100.5, Fifth code,100.6, Sixth code
2,100.1, first code,100.2, Second code,100.3, Third code,100.4, Fourth code,100.5, Fifth code,100.6, Sixth code
하지만 난 아래 그림과 같이 데이터를 다시 얻으려면 :
는ID, Code, Description
1, 100.1, First Code
1, 100.2, Second Code
1, 100.3, Third Code
1, 100.4, Fourth Code
1, 100.5, Fifth Code
1, 100.6, Sixth Code
2, 100.1, First Code
2, 100.2, Second Code
2, 100.3, Third Code
2, 100.4, Fourth Code
2, 100.5, Fifth Code
2, 100.6, Sixth Code
는 사람이 어떻게 그렇게 제발 도와 드릴까요?
나는 UNPIVOT을 시도했지만 정확한 결과를 제공하지 못했습니다. 여기에 사용 된 쿼리가 있지만 어려운 시간을 찾는 정확한 결과를 얻기 위해 조정해야합니다.
SELECT Id, FieldCode , FieldValue
FROM
(
SELECT id, code1, codeDesc1, code2, codeDesc2, code3, codeDesc3, code4, codeDesc4, code5, codeDesc5, code6, codeDesc6
FROM test
) MyTable
UNPIVOT
(FieldValue FOR FieldCode IN (code1, codeDesc1, code2, codeDesc2, code3, codeDesc3, code4, codeDesc4, code5, codeDesc5, code6, codeDesc6))AS MyUnPivot
미리 도움을 주셔서 감사합니다.
이것은 무엇입니까? SQL이나 뭐 그런가요? 적절하게 태그하십시오. –
DB가 그런 식으로 출력되기를 원하십니까? 아니면 어떤 프로그래밍 언어가 그런 식으로 출력되기를 원합니 까? – user482594
답변 해 주셔서 감사합니다. 네,이 정보를 가지고 다른 테이블을 업데이트해야하기 때문에 변환을 수행 할 쿼리가 필요합니다. 나는 커서를 사용할 수 있지만 커서가 마음에 들지 않는다는 것을 알고 있고 PIVOT/UNPIVOT 명령을 사용하여이를 수행하는 방법이 있지만 뭔가 보이지 않지만 보이지 않습니다. – Vincy