【发布时间】:2017-04-01 19:17:46
【问题描述】:
我有一个 Question 表,其中有未知数量的问题。(图中的第一个表)
我还有一个 AnswerSheet 表,记录学生对问题的回答。(图中第二个表)
Create table Question
(
Id int,
Text nvarchar(50),
PRIMARY KEY (Id)
)
Create table AnswerSheet
(
StudentId int,
QuestionId int,
Answer nvarchar(50),
PRIMARY KEY (StudentId,QuestionId),
FOREIGN KEY (QuestionId) REFERENCES Question (Id)
)
insert into Question
values(1,'What''s your age'),
(2,'What''s your gender'),
(3,'When do you go home'),
....
insert into AnswerSheet
values(500,1,'20'),
(500,2,'Male'),
(500,3,'5:00pm'),
(501,1,'50'),
(502,2,'I don''t know@@'),
....
如何编写 SQL 来生成这样的表?
StudentId What's your age What's your gender When do you go home ...
--------- ---------------- ------------------- -------------------
500 20 Male 5:00pm ...
501 50 NULL NULL
502 NULL I don''t know@@ NULL ...
我觉得Pivot 很有前途,但我不确定如何使用它,尤其是PIVOT 需要聚合函数,但我的数据不是数字。
【问题讨论】:
-
@FLICKER 搜索技巧不错,谢谢!!
标签: sql sql-server tsql pivot