SQL转换为3到2列

De *_*nte 4 sql sql-server unpivot

我正在尝试将3列转换为2.有没有办法可以使用下面的示例或不同的方式执行此操作?

例如.

Year   Temp   Temp1
2015    5       6
Run Code Online (Sandbox Code Playgroud)

成:

Year   Value
Base     5
2015     6
Run Code Online (Sandbox Code Playgroud)

sag*_*agi 5

这称为unpivot,pivot恰恰相反(将2列更多).

您可以通过简单的方法完成此操作UNION ALL:

SELECT 'Base',s.temp FROM YourTable s
UNION ALL
SELECT t.year,t.temp1 FROM YourTable t
Run Code Online (Sandbox Code Playgroud)

这继续你在评论上写的内容,如果年份不变,你可以用'2015'代替它