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

  • 相关阅读:
    [转]看懂UML类图
    [转]客户需要什么样的业务解决方案
    [转]逻辑和计算机
    [转]数据库备份与恢复方案
    125个工具与技术(PMBOK2008)
    72个可交付成果(PMBOK2008)
    47个过程(PMBOK2008)
    项目管理详细任务(PMBOK2008)
    项目管理过程组和知识领域表(PMBOK2008)
    项 目 管 理 知 识 体 系 指 南 (PMBOK2008)
  • 原文地址:https://www.cnblogs.com/ylsoo/p/3365562.html
Copyright © 2011-2022 走看看