zoukankan      html  css  js  c++  java
  • Oracle Contact By的使用

    1.概述

    Oracle “CONNECT BY”是层次查询子句,一般用于树状或者层次结果集的查询

     

    2.使用方式

    2.1.通过Connect by 生成序列

    Oracle 构造一个月份的天数
    
    select to_date('200809','yyyymm')+(rownum-1) s_date from dual  
    connect by 
    rownum<=last_day(to_date('200809','yyyymm')) - to_date('200809','yyyymm') + 1

    生成1-10的一个序列
    
    SELECT ROWNUM FROM DUAL CONNECT BY ROWNUM <= 10

    2.2实现树状查询结果

    create table DEP
    (
      DEPID      number(10) not null,
      DEPNAME    varchar2(256),
      UPPERDEPID number(10)
    )
    ---------------------------------------------------------------------
    INSERT INTO DEP(DEPID, DEPNAME, UPPERDEPID) VALUES (0, '总经办', null);
    INSERT INTO DEP(DEPID, DEPNAME, UPPERDEPID) VALUES (1, '开发部', 0);
    INSERT INTO DEP(DEPID, DEPNAME, UPPERDEPID) VALUES (2, '测试部', 0);
    INSERT INTO DEP(DEPID, DEPNAME, UPPERDEPID) VALUES (3, 'Sever开发部', 1);
    INSERT INTO DEP(DEPID, DEPNAME, UPPERDEPID) VALUES (4, 'Client开发部', 1);
    INSERT INTO DEP(DEPID, DEPNAME, UPPERDEPID) VALUES (5, 'TA测试部', 2);
    INSERT INTO DEP(DEPID, DEPNAME, UPPERDEPID) VALUES (6, '项目测试部', 2);
    ---------------------------------------------------------------------
    
    SELECT RPAD( ' ', 2*(LEVEL-1), '-' ) || DEPNAME "DEPNAME",
    CONNECT_BY_ROOT DEPNAME "ROOT",
    CONNECT_BY_ISLEAF "ISLEAF",
    LEVEL ,
    SYS_CONNECT_BY_PATH(DEPNAME, '/') "PATH"
    FROM DEP
    START WITH UPPERDEPID IS NULL
    CONNECT BY PRIOR DEPID = UPPERDEPID;

    DEMO下载

     

  • 相关阅读:
    Linux 目录结构
    date命令--修改linux系统时间
    uniq linux下去除重复行命令
    Linux查看程序端口占用情况
    openfire连接登陆优化方案
    hdu 4848 搜索+剪枝 2014西安邀请赛
    经常使用ARM汇编指令
    一维DFT
    C++ lambda 表达式传递的变量默认不可变
    wm命令用法及LCD显示图标大小不正常时解决的方法
  • 原文地址:https://www.cnblogs.com/jak-black/p/OracleContactBy.html
Copyright © 2011-2022 走看看