我有一个看起来像这样的 oracle 表:
架构:
(数字)node_id
(数字) parent_id
(数字) parent_seq
表中的每个条目代表一个父/子关系。一个父级可以是多个子级的父级,一个子级可以有多个父级(但我们可以假设不存在循环,因为在提交之前已验证)。如果一个孩子有多个父母,那么它在表中将有不止一行对应于它的 node_id,并且 parent_seq 将为每个父母增加。
现在,我不需要重建整个树,我只需要知道每个节点的深度即可。DEPTH 遵循以下通用定义(树的深度和高度有什么区别?)
节点的深度是从节点到树根节点的边数。
有没有办法在 Oracle 中使用 CONNECT_BY 语法优雅地做到这一点?