我想在 Oracle SQL 中转置下表:
来自:
名字 | 姓氏 | 日期 |
---|---|---|
汉斯 | 迈尔 | 1970.01.01 |
汉斯 | 迈尔 | 1970.01.02 |
汉斯 | 迈尔 | 1970.01.03 |
克劳斯 | 施密特 | 1971.01.01 |
克劳斯 | 施密特 | 1971.01.02 |
克劳斯 | 施密特 | 1971.01.03 |
致:
名字 | 姓氏 | 日期1 | 日期2 | 日期3 |
---|---|---|---|---|
汉斯 | 迈尔 | 1970.01.01 | 1970.01.02 | 1970.01.03 |
克劳斯 | 施密特 | 1971.01.01 | 1971.01.02 | 1971.01.03 |
非常感谢您的回答
对行进行编号,然后
PIVOT
:
SELECT *
FROM (SELECT t.*,
ROW_NUMBER() OVER (PARTITION BY firstname, lastname ORDER BY dt) AS rn
FROM table_name t)
PIVOT(
MAX(dt)
FOR rn IN (
1 AS dt1,
2 AS dt2,
3 AS dt3
)
);