2012-12-20 4 views
1

내 문제 : 기본 테이블에 사용자 이름과 피드백 응답이 저장되어 있습니다. 각 사용자의 테이블에는 2 개의 질문과 2 개의 답변이 있습니다.SQL 서버에서 열을 행으로 변환

ans1 ans2은 사용자가 각 질문/답변 쌍에 대해 의견을 입력 할 수있는 텍스트 열입니다.

입력 테이블 :

username question1 question2 opt1 ans1 opt2 ans2 
----------------------------------------------------------------------- 
user1 ques1 ques2 a answer1 b answer2 
user2 ques1 ques2 c answer11 d answer21 

I (위 테이블로 지정된 입력에 대한) 내 출력을 원하는 쿼리 형식으로 아래의 결과를 생성해야합니다

Username Question Option Comment 
---------------------------------------------------- 
user1 ques1 a answer1 
user1 ques2 b answer2 
user2 ques1 c answer11 
user2 ques2 d answer21 

내가 얻을이 쿼리를 시도 결과가 있지만 어떻게 든 가능한 모든 조합을 취하고 있습니다 .pls suggest ..

SELECT Username,Question,Answers,Options 
FROM 
(SELECT username,opt1,opt2,ans1,ans2,ques1,ques2 
FROM dbo.tab1) p 
    UNPIVOT(Question FOR q1 IN (ques1, ques2))AS unpvt1 
    UNPIVOT(Answers FOR answer1 IN (ans1, ans2))AS unpvt2 
    UNPIVOT(Options FOR a IN (opt1, opt2))AS unpvt3 
GO 

답변

0

UNPIVOT을 사용하지 않고 이것을 쿼리하십시오. 확인해주세요

select 
    distinct UserName, 
    Question1 AS Question, 
    Opt1 AS OPT, 
    Ans1 AS Comment 
From 
    tblFeedback where Question1='Quest1' 
UNION ALL 
select 
    distinct UserName, 
    Question2 AS Question, 
    Opt2 AS OPT, 
    Ans2 AS Comment 
From 
    tblFeedback where Question2='Quest2' 
+0

예 .. 완벽하게 처리되었습니다. 감사합니다. –

관련 문제