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个表之间的连接关系,向下查询

复制代码
 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        
相关推荐
AAA修煤气灶刘哥10 小时前
后端人速藏!数据库PD建模避坑指南
数据库·后端·mysql
程序新视界11 小时前
学习MySQL绕不开的两个基础概念:聚集索引与非聚集索引
mysql
RestCloud14 小时前
跨境数据传输:ETL如何处理时区与日期格式差异
mysql·api
RestCloud14 小时前
揭秘 CDC 技术:让数据库同步快人一步
数据库·api
得物技术17 小时前
MySQL单表为何别超2000万行?揭秘B+树与16KB页的生死博弈|得物技术
数据库·后端·mysql
xiaok18 小时前
mysql中怎么创建一个可控权限数据库账号密码给到开发者
mysql
可涵不会debug21 小时前
【IoTDB】时序数据库选型指南:工业大数据场景下的技术突围
数据库·时序数据库
ByteBlossom21 小时前
MySQL 面试场景题之如何处理 BLOB 和CLOB 数据类型?
数据库·mysql·面试
玉衡子21 小时前
九、MySQL配置参数优化总结
java·mysql