我正在使用的数据的排序如下例所示:
我想知道的是这个
我从查询中得到的是这个(带有实际数据的实际查询发布在这篇文章的结尾):
这是我现在拥有的代码,我觉得快要给我我想要的东西。
从( 选择不同的ID ,idnew ,CONNECT_BY_ROOT idlast ,CONNECT_BY_ISLEAF“ IsLeaf” ,CONNECT_BY_ISCYCLE iscycle ,级别seq_order 来自mytable tbl1 通过NOCYCLE idnew连接=先前的id 从不存在开始(从mytable tbl2中选择1 其中tbl2.itemloadid = tbl.itemloadidnew) )abc 按abc.idlast排序,seq_order desc
我从这段代码中得到的输出是这样的:
如何确保将序列的第一个值解释为根(而不是今天的叶子)?据我了解,如果将它们解释为根,则可以使用id_first而不是今天的id_last打印列。
非常感谢您的帮助! :)
答案 0 :(得分:0)
您必须反转connect by
子句:
select t.*, connect_by_root(id) id_first
from mytable t
start with not exists (select 1 from mytable x where x.id_new = t.id)
connect by id = prior id_new