Postgres - 更改列

时间:2016-02-26 22:08:35

标签: sql postgresql

我有一个返回宽数据集的查询,每个学生有一行,每个'得分'有多列:

Student ID     score1     score2     score3...
12345            101        102        103
67890            102        103        104

分数不是实际分数,而是需要转换为实际分数的分数ID。

我想返回实际分数而不是分数ID。我知道我可以编写一堆CASE语句来为每列进行翻译,但是大约有20列需要翻译。我希望有一种更有效的方法。

干杯, 乔纳森

1 个答案:

答案 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