【发布时间】:2020-09-30 12:22:03
【问题描述】:
我是新的 oracle 数据库,我有一个如下表
ID Passengers Age Eligible
123456 Ben 65 Yes
123456 Mary 58 Yes
123458 Stephanie 37 Yes
123458 Aaron 32 Yes
123458 Caroline 18 No
我想得到动态列名为 Age1、Age2、Age3 等的结果,如下所示
ID Age1 Age2 Age3
123456 65 58 NULL
123458 37 32 18
这可以通过SQL Server 中的 STUFF 和 Dynamic Pivot 来实现,但我不知道如何在Oracle 中实现这一点
谁能指导我如何在Oracle动态地做到这一点
【问题讨论】:
-
SO中有很多例子,其中一个有多种方式是stackoverflow.com/a/31420487/13878023..你检查并卡在某个地方了吗?另一个简单的,你也可以关注...stackoverflow.com/questions/50259728/oracle-dynamic-pivoting
-
@Sujitmohanty30 我已经解决了您在此处提到的问题,动态列名都来自列值,但我希望将相同的列名拆分为三个,例如。年龄为 Age1,Age2,Age3,因为我是 Oracle 的新手,所以在 Oracle 中这样做对我来说很困难。我也希望结果集为表格
-
我明白了,这没问题。一个问题是为什么结果中缺少
Passengers?由于时间限制,我只能提供查询,然后可以将其转换为PLSQL。或者只是等待,我相信你很快就会得到解决方案:)
标签: sql oracle plsql pivot dynamic-pivot