mssql 가로를 세로로 0 2 5,024

by 스캇 [SQLServer] 가로를 세로로 [2020.03.04 15:03:24]


안녕하세요. MS- SQL 2012 사용하고 있습니다.

사실상 원본 DATA 필드명 D1 ~ 무한대로 될수 있습니다. 근데 형식 D1, D2,D3 이렇게 됩니다.

분류, 품목,사업 기준으로 D1~ 값이 있는 필드까지 아래와 같이 뽑고 싶은데 어렵네요.

쿼리도 괜찮고 반복문도 괜찮고 방법은 상관없습니다. 고수님의 도움이 절실히 필요합니다.

원본 테이블

분류 품목 사업 D1 D2 D3 D4 D5 D6 D7 D8
aaa 311T2010-5 LCC PKG DOC-202001-001301 DOC-202001-001302 DOC-202001-001303 DOC-202001-001304 DOC-202001-001305 NULL NULL NULL
aaa 311T2567-8 LCC PKG DOC-202001-001307 DOC-202001-001308 DOC-202001-001309 DOC-202001-001310 DOC-202001-001311 DOC-202001-001312 DOC-202001-001313 DOC-202001-001315

원하는 값

분류 품목 사업 D1
aaa 311T2010-5 LCC PKG DOC-202001-001301
aaa 311T2010-5 LCC PKG DOC-202001-001302
aaa 311T2010-5 LCC PKG DOC-202001-001303
aaa 311T2010-5 LCC PKG DOC-202001-001304
aaa 311T2010-5 LCC PKG DOC-202001-001305
aaa 311T2567-8 LCC PKG DOC-202001-001307
aaa 311T2567-8 LCC PKG DOC-202001-001308
aaa 311T2567-8 LCC PKG DOC-202001-001309
aaa 311T2567-8 LCC PKG DOC-202001-001310
aaa 311T2567-8 LCC PKG DOC-202001-001311
aaa 311T2567-8 LCC PKG DOC-202001-001312
aaa 311T2567-8 LCC PKG DOC-202001-001313
aaa 311T2567-8 LCC PKG DOC-202001-001315

 

 

 

by 마농 [2020.03.04 16:44:03]
WITH t(grp, item, biz, d1, d2, d3, d4, d5, d6, d7, d8) AS
(
SELECT 'a', '5', 'L', '01', '02', '03', '04', '05', null, null, null UNION ALL
SELECT 'a', '8', 'L', '07', '08', '09', '10', '11', '12', '13', '15'
)
SELECT *
  FROM t
 UNPIVOT (d FOR gb IN (d1, d2, d3, d4, d5, d6, d7, d8)) a
;

 


by 스캇 [2020.03.04 19:35:17]

답변 감사합니다. 원하는 값을 얻었습니다.

내용을 제것으로 가져가기 위해 노력 하겠습니다

댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입