使用oracle的start with... connect by prior根据子节点,找到从子节点到根目录所有路径

场景: 项目中海关编码目录表以树的方式存储,而且该表只包含一棵树,需要找到某个子节点到根目录的所有路径和某个根节点下的所有子节点路径。

解决:根据子节点,找到从子节点到根目录所有路径

select ID,
PARENT_ID,
GMT_CREATE,
CREATOR,
GMT_MODIFIED,
MODIFIER,
NAME,
DISPLAY_ORDER
from mst_catalog_tbl
start with ID = '5'
connect by prior PARENT_ID = ID

根据根目录,找到从根目录到其所有子节点的路径:

select ID,
PARENT_ID,
GMT_CREATE,
CREATOR,
GMT_MODIFIED,
MODIFIER,
NAME,
DISPLAY_ORDER
from mst_catalog_tbl
start with ID = '5'
connect by prior ID = PARENT_ID

你可能感兴趣的:(oracle)