我正在尝试将一些数据分组并将一列分成几列。以下是我正在使用的表类型,尽管这些列中的每一列都来自通过每个表上的 ID 连接的各个表:
ParticipantId QuestionText QuestionAnswer
1 What is your gender? 2
2 What is your gender? 1
3 What is your gender? 1
4 What is your gender? 2
5 What is your gender? 1
1 What is your age? 28
2 What is your age? NULL
3 What is your age? 55
4 What is your age? 63
And this is what I want to achieve:
ParticipantId Question1Answer Question2Answer Question3Answer
1 2 28 3
2 1 NULL 4
我想这是一件相当困难的事情吗?因为问卷包含大约 100 个问题。
如果不输入每个 questionID,我认为使用 case 是不合适的。我正在使用 SQL Server 2008。以下是我正在使用的一些表结构。我相信有比打字更清晰的方法。
QuestionnaireQuestion 表包含序列的 QuestionNumber,并通过 questionID(即 Question 表 PID)连接到 Question 表。问题表包含 QuestionText 并使用包含答案字段的 QuestionID 链接到 Answer 表。然后答案表通过一个名为 QuestionnaireInstance 的链接表,该链接表最终链接到包含 ParticipantID 的 PaperQuestionnaire 表。
这可能并没有使它更清楚,只是让我知道任何其他可能会使它更清楚的事情。