1

我的问题:我有存储用户名和他们的反馈响应的基表。在每个用户的表格中,我有 2 个问题和 2 个回答。

ans1 ans2是文本列,用户可以在其中针对每个问题/答案对输入他们的评论。

输入表:

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

我希望我的输出(对于上表的给定输入)查询应该产生以下格式的结果:

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

我尝试了这个查询来获得结果,但它以某种方式采用了所有可能的组合..请建议..

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
4

1 回答 1

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'
于 2012-12-20T10:21:26.163 回答