【发布时间】:2012-11-20 21:24:08
【问题描述】:
我们有一个 Oracle 自引用表来表示类似于以下的层次结构:
THING
---------
ID
PARENT_ID
NAME
SOME_DATA
顶级THING 有一个null PARENT_ID。
我希望能够从此表中进行选择,并按层次结构中每一行的位置(从上到下)对数据进行排序,然后按名称对数据集进行排序:
ID PARENT_ID NAME SOME_DATA
1 null top null
2 1 cat null
3 1 dog null
4 2 frog null
5 1 bird null
6 2 fish null
...变成:
ID PARENT_ID NAME SOME_DATA
1 null top null
5 1 bird null
2 1 cat null
6 2 fish null
4 2 frog null
3 1 dog null
当我开始输入这个问题时,我很好奇是否有办法在不向表中添加 LEVEL 列的情况下做到这一点,但现在我什至不确定它是否可以通过添加来完成那个专栏。
“否”的答案在这里完全可以接受,因为我已经接受了我将不得不在我的 Java 代码中执行此操作的事实。
【问题讨论】:
标签: sql oracle self-reference