如何在 Oracle SQL 中转置表

问题描述 投票:0回答:1

我想在 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

非常感谢您的回答

sql oracle
1个回答
0
投票

对行进行编号,然后

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
         )
       );
© www.soinside.com 2019 - 2024. All rights reserved.