在oracle中, level是和connect by ,start with 结合在一起使用的. 用于递归查询. connect by 子句用于定义表中的数据是如何联系的 start with子句用于定义树查询的初始的起点 level表示查询的深度(level 表示递归的层次)
表中有数据如下
使用树查询, sql如下
select t.node_id, t.node_name, level
from km_tree_node t
connect by prior t.parent_id = t.node_id
start with t.node_id = '1095'
order by t.node_id asc
结果如图所示 注意prior 必须放在t.parent_id这一侧, 即根节点的id, 否则prior 放在node_id一侧只会出现一个结果,而不是两个结果. start with为树查询的起点, 从node_id为1095的查起 . 最后要根据id的升序排序, 默认是根据level 的升序排序. level为深度.
参考文章 https://www.cnblogs.com/sunfie/p/5129716.html#commentform