zoukankan      html  css  js  c++  java
  • Oracle CONNECT BY 用法

    CONNECT BY START WITH
     
    LEVEL是伪列,用来表示该条记录位于树形结构的第几层
    START WITH 代表你要开始遍历的的节点
    CONNECT BY PRIOR 是标示父子关系的对应
     



    SELECT last_name, employee_id, manager_id, LEVEL
     FROM employees
     START WITH employee_id = 100
    CONNECT BY PRIOR employee_id = manager_id
     ORDER SIBLINGS BY last_name;

      SELECT LPAD(' ', 5 * LEVEL, ' ') || ename empName,
             dname,
             job,
             sys_connect_by_path(ename, '/') cbp
        FROM scott.emp e, scott.dept d
       WHERE e.deptno = d.deptno
       START WITH mgr IS NULL
      CONNECT BY PRIOR empno = mgr
       ORDER SIBLINGS BY job;

    EMPNAME          DNAME          JOB       CBP
    ---------------- -------------- --------- ---------------------------
      KING           ACCOUNTING     PRESIDENT /KING
        JONES        RESEARCH       MANAGER   /KING/JONES
          SCOTT      RESEARCH       ANALYST   /KING/JONES/SCOTT
            ADAMS    RESEARCH       CLERK     /KING/JONES/SCOTT/ADAMS
          FORD       RESEARCH       ANALYST   /KING/JONES/FORD
            SMITH    RESEARCH       CLERK     /KING/JONES/FORD/SMITH
        CLARK        ACCOUNTING     MANAGER   /KING/CLARK
          MILLER     ACCOUNTING     CLERK     /KING/CLARK/MILLER
        BLAKE        SALES          MANAGER   /KING/BLAKE
          JAMES      SALES          CLERK     /KING/BLAKE/JAMES
          ALLEN      SALES          SALESMAN  /KING/BLAKE/ALLEN
          WARD       SALES          SALESMAN  /KING/BLAKE/WARD
          TURNER     SALES          SALESMAN  /KING/BLAKE/TURNER
          MARTIN     SALES          SALESMAN  /KING/BLAKE/MARTIN


    自从Since Oracle 9i 开始,就可以通过 SYS_CONNECT_BY_PATH 函数实现将从父节点到当前行内容以“path”或者层次元素列表的形式显示出来。 如下例所示:
    如HN项目,取SWJG_LJ


    select vjg.swjg_dm,
           vjg.sj_swjg_dm,
           vjg.swjg_lj swjg_lj1,
           '14100000000' || sys_connect_by_path(swjg_dm, '#') swjg_lj2,
           sys_connect_by_path(swjg_dm, '#') swjg_lj3
      from ssfxpgcl.dm_swjg vjg
     start with vjg.swjg_dm = '14101000000'
    connect by prior swjg_dm = sj_swjg_dm

  • 相关阅读:
    uva 1510
    ADN中国团队參加微软的Kinect全国大赛获得三等奖
    在 window7 window8下公布webService注意问题
    html5调用手机摄像头,实现拍照上传功能
    4、深入理解Bean
    恶补jquery(四)jquery中事件--冒泡
    html5css3杂记
    Core Data 和 sqlite3的性能对比【图】3gs,iPhone4,4s,5的性能测试。
    boost 的函数式编程库 Phoenix入门学习
    information_schema模式表介绍 processlist
  • 原文地址:https://www.cnblogs.com/ylsoo/p/3365562.html
Copyright © 2011-2022 走看看