我有一个返回宽数据集的查询,每个学生有一行,每个'得分'有多列:
Student ID score1 score2 score3...
12345 101 102 103
67890 102 103 104
分数不是实际分数,而是需要转换为实际分数的分数ID。
我想返回实际分数而不是分数ID。我知道我可以编写一堆CASE语句来为每列进行翻译,但是大约有20列需要翻译。我希望有一种更有效的方法。
干杯, 乔纳森
答案 0 :(得分:-1)
你可能想制作一个分数表,然后再加入。这将消除编写荒谬案例查询的需要。
CREATE TABLE code_scores (
ScoreID INT
, Value INT)
GO
INSERT INTO code_scores (scoreid, value)
VALUES
(101, 100)
, (102, 99)
GO
SELECT studentID, score1, value
FROM yourtable
INNER JOIN code_scores
on score1 = scoreID