zoukankan      html  css  js  c++  java
  • Oracle Connect by与递归with

    层次查询

    select * from emp;

    select empno,

    ename,

    job,

    mgr,

    sal,

    deptno,level lv,

    sys_connect_by_path(ename, '->') tree_path,

    connect_by_root(ename) tree_root,

    connect_by_isleaf isleaf,

    decode(connect_by_isleaf,1,ename,null) tree_leaf

    from emp

    start with empno = 7369

    connect by prior mgr = empno

    order by level,empno;

    with t(empno,

    ename,

    job,

    mgr,

    sal,

    deptno,

    lv,

    tree_path,

    tree_root,

    isleaf,tree_leaf) as

    (select empno,

    ename,

    job,

    mgr,

    sal,

    deptno,

    1 lv,

    '->'||ename,

    ename,

    (select decode(count(1), 0, 1) from emp where a.mgr = empno) isleaf,

    (select decode(count(1), 0, a.ename) from emp where a.mgr = empno) leafname

    from emp a

    where empno = '7369'

    union all

    select a.empno,

    a.ename,

    a.job,

    a.mgr,

    a.sal,

    a.deptno,

    b.lv + 1,

    b.tree_path || '->' || a.ename,

    b.tree_root,

    (select decode(count(1), 0, 1) from emp where a.mgr = empno) isleaf,

    (select decode(count(1), 0,a.ename) from emp where a.mgr = empno) leafname

    from emp a, t b

    where a.empno = b.mgr)

    select * from t order by lv,empno;

  • 相关阅读:
    ny2 括号配对问题
    ny14 会场安排问题
    杭电ACM题目分类
    hdoj2037 今年暑假不AC
    ny37 回文字符串
    算法 字符串的排列组合
    手撸IoC
    Java设计模式
    多种方法求java求整数的位数
    二叉树之 二叉树深度
  • 原文地址:https://www.cnblogs.com/mellowsmile/p/4669519.html
Copyright © 2011-2022 走看看