在Oracle connect by SQL查询中将sys_connect_by_path的输出拆分为列

在Oracle connect by SQL查询中将sys_connect_by_path的输出拆分为列,sql,oracle,oracle11g,oracle10g,Sql,Oracle,Oracle11g,Oracle10g,我有一个Oracle SQL查询,它使用Oracle的connectby子句返回以下输出 Level Path 1 A 2 A -> B 3 A -> B -> C 4 A -> B -> C -> D 查询将级别和路径(使用sys\u connect\u by\u path和'->'作为分隔符)作为两列返回 是否可以使路径中的每个项都位于其自己的列中?例如,在上面的输出中,我知道最多有4个级别/列。如何生

我有一个Oracle SQL查询,它使用Oracle的
connectby
子句返回以下输出

Level   Path
1       A
2       A -> B
3       A -> B -> C
4       A -> B -> C -> D
查询将级别和路径(使用
sys\u connect\u by\u path
和'
->
'作为分隔符)作为两列返回

是否可以使路径中的每个项都位于其自己的列中?例如,在上面的输出中,我知道最多有4个级别/列。如何生成如下所示的输出:

Level   Value1  Value2  Value3  Value4
1       A
2       A        B
3       A        B       C  
4       A        B       C      D
我不必使用sys\u connect\u by\u path,因此如果可以在不使用sys\u connect\u by\u path的情况下将值放入列中,请让我知道


提前感谢

在Oracle 11g中引入运算符
PIVOT
可以编写将行旋转为列的交叉表格查询

这似乎很有效: