sql递归查询处理树状结构数据,适用于sqlserver和oracle

这篇具有很好参考价值的文章主要介绍了sql递归查询处理树状结构数据,适用于sqlserver和oracle。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

在工作中用到根据某个组织的ID,查询当前所有的上级,并按层级返回

递归语法:

以with开头,再以2个查询用 union all连接,且2个查询列表字段和类型返回必须一致

向上查询数据,oo是最终返回的表,也可以写为with oo as ....

但是不能写为 with oo(FID,fname_l2 ,FPARENTID)  去掉某一个列表字段的值

会报错显示SQL 错误 [8158] [S0001]: 'oo' 中的列多于列列表中指定的列。

--向上
   with oo(FID,fname_l2 ,FPARENTID,FLEVEL) as
        (
            SELECT
                org.FID,
                org.fname_l2,
                org.FPARENTID,
                org.FLEVEL
            FROM
                T_ORG_ADMIN org
            where
                org.fnumber = 'tymatest1'
                
           union all
            select
                t.FID,
                t.fname_l2,
                t.FPARENTID,
                t.FLEVEL
            from
                T_ORG_ADMIN t
            join oo on oo.FPARENTID = t.FID
        )
        SELECT
        	distinct *
        FROM
        oo

 join oo on oo.FPARENTID = t.FID  代表2个表之间的连接关系,向上查询

以下语句代表向下查询

join oo on oo.fid = t.FPARENTID  代表2个表之间的连接关系,向下查询文章来源地址https://www.toymoban.com/news/detail-816453.html


 with oo as
        (
            SELECT
                org.FID,
                org.fname_l2,
                org.FPARENTID,
                org.FLEVEL
            FROM
                T_ORG_ADMIN org
            where
                org.fnumber = 'tymatest1'
                
           union all
            select
                t.FID,
                t.fname_l2,
                t.FPARENTID,
                t.FLEVEL
            from
                T_ORG_ADMIN t
            join oo on oo.fid = t.FPARENTID
        )
        SELECT
        	distinct *
        FROM
        oo        
      

到了这里,关于sql递归查询处理树状结构数据,适用于sqlserver和oracle的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • java 树状数据,递归 从子节点找父节点

    前言:递归算法在项目中也会使用到,简单介绍一下在项目中使用到的场景 补充一个题目 递归方法实现三个要素: 1、明确递归终止条件; 2、给出递归终止时的处理办法; 3、提取重复的逻辑,缩小问题的规模。 场景一:根据树状图的某一节点,查找特定条件的上级节点,子节

    2024年02月11日
    浏览(33)
  • 华为OD机试 - 树状结构查询(Java & JS & Python)

    题目描述 通常使用多行的节点、父节点表示一棵树,比如 西安 陕西 陕西 中国 江西 中国 中国 亚洲 泰国 亚洲 输入一个节点之后,请打印出来树中他的所有下层节点 输入描述 第一行输入行数,下面是多行数据,每行以空格区分节点和父节点 接着是查询节点 输出描述 输出

    2024年02月11日
    浏览(35)
  • 【.net core】yisha框架 SQL SERVER数据库 反向递归查询部门(子查父)

     业务service.cs中ListFilter方法中内容 DepartmentService.cs中内容 mysql数据库中参考mysql 递归语法修改sql

    2024年02月07日
    浏览(33)
  • 查询sqlserver内存分配情况的SQL

    SELECT mg.granted_memory_kb, mg.session_id, t.text, qp.query_plan  FROM sys.dm_exec_query_memory_grants AS mg CROSS APPLY sys.dm_exec_sql_text(mg.sql_handle) AS t CROSS APPLY sys.dm_exec_query_plan(mg.plan_handle) AS qp ORDER BY 1 DESC OPTION (MAXDOP 1) USE master  GO ;WITH    cte   AS ( SELECT   RP.pool_id ,   RP.Name ,   RP.min_memory_percent ,  

    2024年02月09日
    浏览(32)
  • SQL高级:递归查询

    如果在单表或两表中存储了 树形结构 数据,那么在查询这些数据时,就有可能要用到递归查询。 在实际的业务场景中, 树形结构 的数据很常见。比如组织架构、产品材料清单、产品大类和小类等等。 递归查询也是一个很有趣的知识点。我们来学习一下它。 为了学习这个知

    2024年02月03日
    浏览(41)
  • sql递归查询

    一、postgresql 递归sql   sql中with xxxx as () 是对一个查询子句做别名,同时数据库会对该子句生成临时表; with recursive 则是一个递归的查询子句,他会把查询出来的结果再次代入到查询子句中继续查询 p为自定义临时表名,最后一句select后跟的字段必须小于等于t1和t2中字段。 第

    2024年02月11日
    浏览(28)
  • 递归sql查询完整科目名称

    已知表 科目编号 科目名称 1001 1001 现金 1002 1002 银行存款 10020100 0100 工商银行存款 100201000001 0001 工行重庆路支行 10020200 0200 建设银行存款 100202000001 0001 建行铁北支行 需要整理成 科目编号 科目称 科目全称 1001 现金 现金 1002 银行存款 银行存款 10020100 工商银行存款 银行存款

    2024年02月08日
    浏览(29)
  • 【高级数据结构】树状数组

    目录 树状数组1 (单点修改,区间查询) 树状数组2(区间修改,单点查询) 树状数组1 (单点修改,区间查询) 题目链接:洛谷 树状数组1 题目描述 如题,已知一个数列,你需要进行下面两种操作: 将某一个数加上 x 求出某区间每一个数的和 输入格式 第一行包含两个正

    2024年02月15日
    浏览(34)
  • 数据结构<1>——树状数组

    前言:树状数组能解决的问题线段树一定可以解决。然后关于线段树的内容会在2中讲解。 树状数组,也叫Fenwick Tree和BIT(Binary Indexed Tree),是一种支持 单点修改 和 区间查询 的,代码量小的数据结构。 那神马是单点修改和区间查询?我们来看一道题。 洛谷P3374(模板): 在本题中

    2024年01月25日
    浏览(49)
  • 【算法 & 高级数据结构】树状数组:一种高效的数据结构(一)

    🚀 个人主页 :为梦而生~ 关注我一起学习吧! 💡 专栏 :算法题、 基础算法~赶紧来学算法吧 💡 往期推荐 : 【算法基础 数学】快速幂求逆元(逆元、扩展欧几里得定理、小费马定理) 【算法基础】深搜 树状数组 (Binary Indexed Tree,BIT)是一种数据结构,用于高效地处理

    2024年03月11日
    浏览(51)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包