知识大全 Oracle--树的使用(Connect By)

Posted 路径

篇首语:不要让世界改变你的微笑,用你的微笑改变世界。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 Oracle--树的使用(Connect By)相关的知识,希望对你有一定的参考价值。

Oracle--树的使用(Connect By)  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!

  表    tree  字段   master       sub       sales  insert into tree values  ( 主    主   );    insert into tree values      ( 主    主   );        insert into tree values  ( 主    主    );            insert into tree values  ( 主    主   );  insert into tree values  ( 主    主   );   insert into tree values  ( 主    主   );    SQL> select * from tree;  MASTER   SUB       SALES     主     主            主     主            主     主            主     主            主     主            主     主               如果用树型结构表示如下:    主                 主                主        主     主                 主                主        主     SQL> select * from tree                   start with sub= 主       相当于普通sql的where条件  connect by prior master=sub;  遍历的顺序是sub先于master遍历 也就是说从sub往上遍历一直到master(根节点)       MASTER   SUB       SALES     主     主                SQL> select * from tree                   start with master= 主   connect by prior master=sub; sub往上遍历至根节点(参考一下树型图)                         MASTER   SUB       SALES                  主     主            这条是自己本身 也就是第一遍遍历  主     主            这是第 次遍历 我们从树型图可以看到 主 往上遍历是 主        主     主                  主     主                                                                                           好 我们关看上面可能还是不好理解 我们加入一个树结构专用函数sys_connect_by_path 便于理解    SQL> select sys_connect_by_path(MASTER / ) from tree  master表示我遍历的起点只找在master列中存在的 如下例只要 主 为起点 并以/为分割符   start with master= 主   connect by prior master=sub;  往根节点遍历          SYS_CONNECT_BY_PATH(MASTER / )     /主               第 遍遍历  /主 /主            第 遍遍历  /主               第 条master= 主 的记录的第 次遍历  /主 /主            第 条master= 主 的记录的第 次遍历    SQL> select sys_connect_by_path(MASTER / ) from tree 起点为sub= 主 时MASTER=主 主   start with sub= 主   connect by prior master=sub;          SYS_CONNECT_BY_PATH(MASTER / )     /主   /主 /主   /主   /主 /主     SQL> select sys_connect_by_path(MASTER / ) sub master from tree     start with sub is not null   connect by prior master=sub;           SYS_CONNECT_BY_PATH(MASTER / SUB    MASTER     /主               主     主   找主 到根的路径 这里根是主 他自己  /主               主     主    /主               主     主    /主 /主            主     主   找主 到根的路径 这里根是主   /主               主     主   /主 /主            主     主    /主               主     主    /主 /主            主     主   /主               主     主   /主 /主            主     主     select sys_connect_by_path(MASTER / ) sub master from tree                   start with sub is not null   connect by prior sub = master;                            SYS_CONNECT_BY_PATH(MASTER / SUB    MASTER     /主               主     主   /主 /主            主     主   /主 /主            主     主   /主               主     主   /主 /主            主     主   /主 /主            主     主   /主               主     主   /主               主     主   /主               主     主   /主               主     主 cha138/Article/program/Oracle/201311/16554

相关参考

知识大全 oracle的分析函数over(Partition by...)

oracle的分析函数over(Partitionby...)  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来

知识大全 Oracle Fail Safe Step-By-Step Installation and Co

OracleFailSafeStep-By-StepInstallationandCo  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布

知识大全 Oracle中索引树的结构与块的尺寸

Oracle中索引树的结构与块的尺寸  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!关于Oracle

知识大全 Oracle预定义角色

Oracle预定义角色  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  CONNECT  RESO

知识大全 深入讲解如何使用rollup配合group by命令

  Oracle数据库中的rollup配合groupby命令使用可以提供信息汇总功能(与小计相似)  示例如下  SQL>selectjobdeptnosalfromemp;  JOBDEPTN

知识大全 linux下oracle数据库的启动和关闭

  一启动  三个命令  sqlplux/nolog  connect/assysdba  startup  二关闭  shutdownimmediate;  [oracle@zhao~]$sqlpl

知识大全 oracle单独导出序列方法

  方法一:  SELECTCREATESEQUENCE||SEQUENCE_NAME||INCREMENTBY||  INCREMENT_BY||STARTWITH||LAST_NUMBER||MA

知识大全 IBM DB2 Connect简介(1)

IBMDB2Connect简介(1)  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!正在看的db2教

知识大全 求助求助 Failed to connect to server Connection timed out

求助求助FailedtoconnecttoserverConnectiontimedout  以下文字资料是由(本站网www.cha138.com)小编为大家搜集整理后发

知识大全 Connect the audio cable,s mini plug to the"AUDIO"jack,and the other appropriate end to"CDAUX"or

Connecttheaudiocable,sminiplugtothe"AUDIO"jack,andtheotherappropriateendto"CDAUX"or  以下文字资