ORACLE CONNECT_BY_ROOT
来源:互联网 发布:王者荣耀淘宝cdk抽奖 编辑:程序博客网 时间:2024/06/16 12:48
在10g中 Oracle提供了新的操作: CONNNECT_BY_ROOT,通过这个操作,可以获取树形查询根记录的字段。
这里描述一下在 9i中如何实现相应的功能。
首先还是构造一个例子:
[c-sharp] view plaincopy
- SQL> CREATE TABLE T_TREE (ID NUMBER PRIMARY KEY, FATHER_ID NUMBER, NAME VARCHAR2(30));
- 表已创建。
- SQL> INSERT INTO T_TREE VALUES (1, 0, 'A');
- 已创建 1 行。
- SQL> INSERT INTO T_TREE VALUES (2, 1, 'BC');
- 已创建 1 行。
- SQL> INSERT INTO T_TREE VALUES (3, 1, 'DE');
- 已创建 1 行。
- SQL> INSERT INTO T_TREE VALUES (4, 1, 'FG');
- 已创建 1 行。
- SQL> INSERT INTO T_TREE VALUES (5, 2, 'HIJ');
- 已创建 1 行。
- SQL> INSERT INTO T_TREE VALUES (6, 4, 'KLM');
- 已创建 1 行。
- SQL> INSERT INTO T_TREE VALUES (7, 6, 'NOPQ');
- 已创建 1 行。
- SQL> COMMIT;
- 提交完成。
- SQL> SELECT * FROM T_TREE;
- ID FATHER_ID NAME
- ---------- ---------- ------------------------------
- 1 0 A
- 2 1 BC
- 3 1 DE
- 4 1 FG
- 5 2 HIJ
- 6 4 KLM
- 7 6 NOPQ
- 已选择 7行。
下面看看 CONNECT_BY_ROOT的功能:
[c-sharp] view plaincopy
- SQL> SELECT ID, FATHER_ID, NAME, CONNECT_BY_ROOT(NAME) ROOT_NAME
- 2 FROM T_TREE
- 3 START WITH FATHER_ID = 0
- 4 CONNECT BY PRIOR ID = FATHER_ID;
- ID FATHER_ID NAME ROOT_NAME
- ---------- ---------- ---------- ----------
- 1 0 A A
- 2 1 BC A
- 5 2 HIJ A
- 3 1 DE A
- 4 1 FG A
- 6 4 KLM A
- 7 6 NOPQ A
- 已选择 7行。
- SQL> SELECT ID, FATHER_ID, NAME,
- 2 CONNECT_BY_ROOT(NAME) ROOT_NAME, CONNECT_BY_ROOT(ID) ROOT_ID
- 3 FROM T_TREE
- 4 START WITH ID = 7
- 5 CONNECT BY PRIOR FATHER_ID = ID;
- ID FATHER_ID NAME ROOT_NAME ROOT_ID
- ---------- ---------- ---------- ---------- ----------
- 7 6 NOPQ NOPQ 7
- 6 4 KLM NOPQ 7
- 4 1 FG NOPQ 7
- 1 0 A NOPQ 7
0 0
- ORACLE CONNECT_BY_ROOT
- ORACLE CONNECT_BY_ROOT
- ORACLE CONNECT_BY_ROOT
- ORACLE CONNECT_BY_ROOT
- Oracle树形汇总--connect_by_root
- oracle 递归查询 CONNECT BY、START WITH、CONNECT_BY_ROOT、CONNECT_BY_ISLEAF、SYS_CONNECT_BY_PATH
- oracle 递归查询 CONNECT BY、START WITH、CONNECT_BY_ROOT、CONNECT_BY_ISLEAF、SYS_CONNECT_BY_PATH
- oracle 递归查询 CONNECT BY、START WITH、CONNECT_BY_ROOT、CONNECT_BY_ISLEAF、SYS_CONNECT_BY_PATH
- oracle中进行简单树查询(递归查询) ,PRIOR、CONNECT_BY_ROOT的使用
- oracle中 connect by prior 递归算法,connect_by_root,sys_connect_by_path,connect_by_isleaf,CONNECT_BY_ISCYC
- oracle中进行简单树查询(递归查询) ,PRIOR、CONNECT_BY_ROOT的使用 .
- oracle中 connect by prior 递归算法,connect_by_root,sys_connect_by_path,connect_by_isleaf,CONNECT_BY_ISCYC
- oracle中 connect by prior 递归算法,connect_by_root,sys_connect_by_path,connect_by_isleaf,CONNECT_BY_ISCYC
- oracle中进行简单树查询(递归查询) ,PRIOR、CONNECT_BY_ROOT的用法
- connect_by_root and connect_by_isleaf
- CONNECT_BY_ROOT获取根节点属性
- SYS_CONNECT_BY_PATH 和几个伪列CONNECT_BY_ROOT,CONNECT_BY_LEAF,CONNECT_BY_ISCYCLE
- Oracle???
- 关于连接参数-Ttext
- 2016.12.05回顾 logistic自变量是分类变量
- python 多线程(续)
- java 正则表达式
- Eclipse中的引用项目报Could not find *.apk!解决办法
- ORACLE CONNECT_BY_ROOT
- rot13 编码
- OpenCV学习笔记(一)对数变换
- Thinking in React
- 【BZOJ 1030】[JSOI2007]文本生成器 Ac自动机+fail树上dp
- Eclipse快速获取类的限定名称
- 第十三章:Sequental data exercise 1-11
- iframe,iframeBody的作用
- Maven 中的坐标和仓库