这是一个施工问题。 通常,当您拥有统计程序格式(R,SPSS)的数据时,每个值都有一个标签(称为值标签)。 让我们说我们有三个人回答的树问题
Q1|Q2|Q3
Person1||2 |1 |1
Person2||3 |1 |2
Person3||3 |2 |3
这些值中的每一个都有一个值标签
1 = good
2 = neutral
3 = bad
我的目标是将这些数据放入sql server。但我不知道如何做到这一点。我的想法是制作两张桌子
第一张表格保留每个问题的人均答案。这里每个人都获得一个ID,问题是字段。现在我把值和值标签放在第二位。但是这个结构我不知道如何查询一个表,其中所有值都被valuelabels替换。我想我会像
那样进行查询Select * from Questions
left join labels
on questions.Q1 = labels.Labs
但对于例如1000个问题我必须为每个问题添加最后一行吗?任何人都可以帮我建造桌子,我不想犯错误。
根据以上示例的结果'看起来像:
Q1 |Q2 |Q3
Person1||neutral |good |good
Person2||bad |good |neutral
Person3||bad |neutral |bad
答案 0 :(得分:1)
Select *
from Questions
left join labels as l1
on questions.Q1 = l1.Labs
left join labels as l2
on questions.Q2 = l2.Labs
left join labels as l3
on questions.Q3 = l3.Labs
答案 1 :(得分:0)
如果1,2和3总是好的,中性的和坏的,你可以将它们存储在一种键/值对表中
CREATE TABLE AnswerCodes(
[AnswerValue] INT NOT NULL,
[AnswerCode] VARCHAR(10) NOT NULL --can make the column wider to store bigger values
)
SELECT Q.AnswerValue, AC.AnswerCode
FROM [Questions] Q
JOIN [AnswerCodes] AC
ON Q.[AnswerValue] = AC.[AnswerValue]
现在,只需拉一列就可以获得良好的效果。如果您确实需要将标签应用于多列答案值,则可以