【发布时间】:2021-02-28 00:02:48
【问题描述】:
我有一个查询,其一行输出如下:
Math MathStartDate Science ScienceStartDate Comp CompStartDate Hist HistStartDate
12 11/12/2020 13 11/02/2020 6 11/01/2020 45 11/01/2020
我希望结果看起来像这样
Code Value1 Value2
Math 12 11/12/2020
Science 13 11/02/2020
Comp 6 11/01/2020
Hist 45 11/01/2020
为了得到像上面这样的结果,我使用 unpivot 如下:
select * from (
select
Math,
MathStartDate,
Science,
ScienceStartDate,
Comp,
CompStartDate,
Hist,
HistStartDate
from subjects vw, students s
where s.id = vw.id
and id = 56
)
UNPIVOT INCLUDE NULLS(value1 FOR code in(Math,
Science,
Comp,
Hist));
这个输出看起来像,
MathStartDate ScienceStartDate CompStartDate HistStartDate code value1
11/12/2020 11/02/2020 11/01/2020 11/01/2020 Math 12
11/12/2020 11/02/2020 11/01/2020 11/01/2020 Science 13
11/12/2020 11/02/2020 11/01/2020 11/01/2020 Comp 6
11/12/2020 11/02/2020 11/01/2020 11/01/2020 Hist 45
如何让日期对齐以便获得所需的输出?
【问题讨论】:
标签: sql oracle oracle11g pivot unpivot