【发布时间】:2021-06-29 13:18:33
【问题描述】:
我有下表,我正在尝试编写一个 Oracle 选择查询来生成第二个表。
我知道我必须使用 Pivot,但我完全不知道该怎么做。
| MSGID | KEY | COLVALUE |
|---|---|---|
| 15 | height | 18 |
| 15 | length | 19 |
| 15 | width | 20 |
| 15 | notImportant | xxx |
| 16 | height | 21 |
| 16 | length | 22 |
| 16 | width | 23 |
| 16 | notImportant | xxx |
| 17 | height | 24 |
| 17 | length | 25 |
| 17 | width | 26 |
| 17 | notImportant | xx |
想要的结果:
| MsgID | height | length | width |
|---|---|---|---|
| 15 | 18 | 19 | 20 |
| 16 | 21 | 22 | 23 |
| 17 | 24 | 25 | 26 |
尝试了下面的代码,但没有成功....
select MSGID, HEIGHT, LENGTH, WIDTH
from (select MSGID, KEY, COLVALUE
from table )
PIVOT
(
max(COLVALUE)
FOR KEY IN ('HEIGHT','LENGTH','WIDTH')
)
你有什么建议吗?
【问题讨论】: