【发布时间】:2013-04-16 14:56:23
【问题描述】:
我有一个如下所示的 oracle 表:
架构:
(数字)node_id
(数字) parent_id
(number) parent_seq
表中的每个条目都代表一个父/子关系。一个父级可以是多个子级的父级,一个子级可以有多个父级(但我们可以假设不存在循环,因为在提交之前已验证)。如果一个孩子有多个父母,那么它在表中的 node_id 将有不止一行对应,并且 parent_seq 将为每个父母递增。
现在,我不需要重建整个树,我只需要知道每个节点的深度即可。 DEPTH 遵循 (What is the difference between tree depth and height?) 的通用定义
节点的深度是从节点到树的边的数量 根节点。
有没有办法在 Oracle 中使用 CONNECT_BY 语法优雅地做到这一点?
【问题讨论】: