dynamic unpivot 관련 에러 0 3 4,457

by 잔든건 [SQLServer] [2016.08.04 09:27:48]


안녕하세요 sql server 사용자입니다!

제가 unpivot을 통해서 가로데이터를 세로데이터로 바꾼후 

다시pivot을 통해서 세로데이터를 가로데이터로 바꾸려고 하는 작업에 있는데

 

pivot이나 unpivot같은 경우는 컬럼을 정해줘야 해서 검색을 해보니 동적쿼리로 작성을 하라고 해서

pivot같은 경우는 잘 진행이 되었는데요

 

unpivot을 하려고 하니

열 "컬럼명"의 유형이 unpivot 목록에 지정된 다른 열의 유형과 충돌합니다라는 에러메시지가 뜨는데

알고 계신분 있으면 도움 부탁드립니다~

 

 

by 마농 [2016.08.04 09:44:53]
-- 1. 서로 다른 유형의 항목들을 그대로 피벗
SELECT *
  FROM (SELECT 1 a, 'A' b, GETDATE() c) a
 UNPIVOT (v FOR gb IN (a, b, c)) a
;
-- 열 "b"의 유형이 UNPIVOT 목록에 지정된 다른 열의 유형과 충돌합니다.

-- 2. 유형을 통일시켜 피벗
SELECT *
  FROM (SELECT CAST(a AS VARCHAR(20)) a
             , CAST(b AS VARCHAR(20)) b
             , CONVERT(VARCHAR(20), c, 120) c
          FROM (SELECT 1 a, 'A' b, GETDATE() c) a
        ) a
 UNPIVOT (v FOR gb IN (a, b, c)) a
;

 


by 잔든건 [2016.08.04 09:53:55]

답변감사드립니다..

컬럼명을 stuff를 통해서 가져오는데요 그 각각의 데이터타입을 변경해 줄 수 있나요?


by 마농 [2016.08.04 09:58:50]

데이터 타입 변경방법을 알려드린 건데요?

CAST 를 이용하세요.

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