mssql unpivot 예제

대신 SQL Server의 UNPIVOT 연산자를 사용할 수 있습니다. 대중적인 믿음과는 반대로, PIVOT의 정반대는 아닙니다. 위의 샘플 데이터를 사용하는 예 : 감사합니다, 이것은 매우 도움이됩니다. 한 가지 질문이 더 있습니다. 내가 다음과 같이 열을 갖고 싶다면, phone1, phone2 및 phone3에 대한, unpivot의 경우 : 이것은 좋은 게시물입니다! 감사합니다! 각 고객에 대한 모든 전화 행을 유지해야 하는 경우 수행할 방법에 대한 조언이 있습니까? 따라서 각 고객은 세 개의 행을 가지게 됩니다 – 고객 1에는 하나의 null 행, 2개의 null 행, 고객 3에는 null 행이 없습니다. 내 특정 예에서, 나는 몇 가지 질문에 대한 매우 응답이, 나는 환자가 그것을 대답하지 않은 경우에도 모든 질문 텍스트를 유지해야합니다. 감사! 내가 지금 가지고있는 것은 정반대입니다. 정규화된 전화 테이블이 있고 모든 데이터를 한 문자열에 배치해야 합니다. 예를 들어 UNPIVOT는 열을 행으로 회전하여 PIVOT의 거의 역방향 작업을 수행합니다. 이전 예제에서 생성된 테이블이 데이터베이스에 pvt로 저장되어 있고 열 식별자 Emp1, Emp2, Emp3, Emp4 및 Emp5를 특정 공급업체에 해당하는 행 값으로 회전한다고 가정합니다.

따라서 두 개의 추가 열을 식별해야 합니다. 회전하는 열 값(Emp1, Emp2,…)을 포함하는 열을 Employee라고 하며, 현재 회전중인 열 아래에 있는 값을 보유하는 열을 Orders라고 합니다. 이러한 열은 Transact-SQL 정의의 pivot_열 및 value_열에 각각 해당합니다. 다음은 쿼리입니다. 스크린 샷 : https://www.dropbox.com/s/vxtoiq8q1i81pc3/unpivot.JPG?dl=0 그냥이 부딪 쳤다. 우수한 예. 아주 잘 여기에 게시 주셔서 감사합니다! 안녕하세요 세르게이 Syrovatchenko, 어떻게 피벗으로 돌아가서 unpivot 방법 / s를 반대로 예제를 사용합니까? 앞에서 설명한 것처럼 PIVOT 연산자는 테이블 행을 열로 변환합니다. 예를 들어 다음과 같은 테이블이 있는 경우 http://www.mssqltips.com/sqlservertip/2783/script-to-create-dynamic-pivot-queries-in-sql-server/ SQL Server 2005의 문제에 따라 몇 가지 예제를 적용하려면 VALUE 문: 반복되는 행이 없습니다. 즉, 각 학생에 대해 코스당 하나의 레코드만 있다고 말할 수 있습니다. 예를 들어, 샐리는 영어 코스에서 자신의 점수에 대한 하나의 기록을 가지고있다. 내 데이터를 피벗 해제하려고하지만 이상한 결과를 얻으려고합니다. 다음은 내 코드와 결과의 스크린 샷입니다.

초기 솔루션(CustomerPhones 테이블)을 기반으로 UNION ALL 및 UNPIVOT를 사용하여 출력을 정규화했습니다.