zoukankan      html  css  js  c++  java
  • oracle中树结构的一种查询方法

    有一张表T_DEP,以ID和F_ID关联,类似:
    ID   DEPNAME  F_ID
    1     总经室            -1
    2     市场部            1
    3     行政部            1
    4     食堂                3
    5      医务室           3

    形成了一个树形结构,如果要在程序中进行一次遍历,正常都会使用到递归,在oracel中可以使用CONNECT BY来直接进行遍历

    SELECT  *   FROM  T_DEP  CONNECT BY  ID =  PRIOR   F_ID  START   WITH   ID = 4
    这条语句表示从ID = 4的部门开始,从树的底部向上进行遍历,结果为:
    4     食堂                3
    3     行政部            1
    1     总经室            -1

    SELECT  *   FROM  T_DEP  CONNECT BY PRIOR   ID =   F_ID  START   WITH   ID = 3
    这条语句表示从ID=3的部门开始,从上向下进行遍历,结果为:
    3     行政部            1
    5      医务室           3
    4     食堂                3

    在oracle中使用CONNECT BY 可以免去在程序中使用递归





  • 相关阅读:
    exit()和_exit()函数(转)
    C语言struct内存占用问题 (转)
    C语言中memset函数(转)
    STDIN_FILENO与stdin区别(转)
    stderr,strerror,errno,perror,论坛大神的回答!
    C++ 函数模版
    C++ 内置函数
    offsetof
    LockSupportDemo
    读写锁,await和signa
  • 原文地址:https://www.cnblogs.com/ballpenxp/p/886678.html
Copyright © 2011-2022 走看看