再说ORACLE树查询

来源:互联网 发布:微信加群 知乎 编辑:程序博客网 时间:2024/05/23 19:28
-- 查找 E006002 的所有父节点和级别[最近的为1级]WITH CTE_PW (fPID,fFPID,lev) AS(    SELECT fPID,fFPID,0 AS lev FROM APP_POSITION WHERE fPID = 'E006002'    UNION ALL    SELECT E.fPID,E.fFPID,lev + 1 FROM CTE_PW T,APP_POSITION E    WHERE T.fFPID = E.fPID)SELECT * FROM CTE_PW WHERE fPID <> 'E006002';结果集合如下:XH  FPID    FFPID   LEVEL---------------------------01  E006001 E003003 102  E003003 E003002 203  E003002 E003001 304  E003001 E000101 405  E000101 E000100 506  E000100 E000012 607  E000012 E000011 708  E000011 E000010 809  E000010 E000009 910  E000009 E000008 1011  E000008 E000007 1112  E000007 E000006 1213  E000006 E000005 1314  E000005 E000004 1415  E000004 E000003 1516  E000003 E000002 1617  E000002 E000001 1718  E000001 E000000 1819  E000000 ROOT    19
-- 查找 E006002 的所有子节点和级别[最近的为1级]WITH CTE_PW (fPID,fFPID,lev) AS(    SELECT fPID,fFPID,0 AS lev FROM APP_POSITION WHERE fPID = 'E006002'    UNION ALL    SELECT E.fPID,E.fFPID,lev + 1 FROM CTE_PW T,APP_POSITION E    WHERE T.fPID = E.fFPID)SELECT * FROM CTE_PW WHERE fPID <> 'E006002';结果集合如下:XH  FPID        FFPID       LEVEL----------------------------------1   E006003     E006002     12   E006012     E006002     13   E100012329  E006002     14   E006004     E006003     25   E006013     E006012     26   E006014     E006012     27   E100012330  E100012329  28   E100012331  E100012330  39   E006060     E006014     3
原创粉丝点击