zoukankan      html  css  js  c++  java
  • 【代码保留】Oracle树形查询

    功能:

    查找当前层级(部门)所属的某一上级的所有子集。常用于查询权限等(人可能属于××子部门,但是却需要查询该同志是否在××子部门的上级部门有职务(总不能说人家是××子部门的就不是××公司的吧~))

    原理:

                                        1                                       (1级)

                               21                 22                          (2级)

                        31     32             33    34                     (3级)

                    41,42   43,44      45,46   47,48                (4级)

    当前层级可能为层级图中的其中一级,假设为3级的33,那么结果集可能需要查找其所隶属的二级以下的所有子集,此例中,33的商机为22,22的所有下级包括22、33、34、45、46、47、48。

    思路:

    树形查询语句可以实现向上以及向下的查询(常用来查询树中节点的子节点以及父节点),因此,先向上查询到级别N,然后在从N开始向下查询其子集即可。

    SQL:

    select t.brc_id
              from asm_branch t
            CONNECT BY t.brc_parentid = PRIOR t.brc_id
             START WITH t.brc_id in (select t.brc_id
                                       from asm_branch t
                                      where t.brc_level = '1'
                                     CONNECT BY t.brc_id = PRIOR t.brc_parentid
                                      START WITH t.brc_id = '53')

    53可替换为任意要查询级别以下(包括同级)的编号,1则代表要查询第一级

  • 相关阅读:
    IDEA中用jetty启动项目时,url 404
    Mysql 性能查询
    RabbitMQ 安装
    Ubuntu安装kubernetes
    .net 4 调用WCF时报错 Type 'System.Threading.Tasks.Task`1[]' cannot be serialized
    Windows XP SP2上安装.net 4
    angular学习的一些Mark
    [转]对 td 使用 overflow:hidden; 无效的几点错误认识
    静态方法与非静态方法的区别
    二进制字符串的权限管理
  • 原文地址:https://www.cnblogs.com/volnet/p/962236.html
Copyright © 2011-2022 走看看