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        
相关推荐
流星白龙2 小时前
【Redis】2.Redis重大版本
数据库·redis·junit
流星白龙2 小时前
【Redis】7.Hash表
数据库·redis·哈希算法
流星白龙3 小时前
【Redis】4.基本全局命令
数据库·redis·缓存
王八八。4 小时前
Navicat 17破解版下载安装教程 附安装激活步骤(2026 最新版)
数据库·navicat
Jelena157795857925 小时前
电商运营分析数据比价接口实战:多平台价格监控与智能决策系统
java·大数据·数据库
流星白龙6 小时前
【Redis】3.Redis安装与命令行客户端
数据库·redis·缓存
二宝哥6 小时前
MySQL 修改密码策略详解:从基础到高级配置
mysql·密码学
马优晨7 小时前
DBeaver 连接 MySQL 完整排错教程
mysql·dbeaver连接mysql·dbeaver连mysql·dbeaver连接数据库·db连接mysql
凌虚7 小时前
基于 PostgreSQL WAL 构建 CDC 系统:原理与工程实现
数据库·后端·postgresql
BullSmall7 小时前
PostgreSQL 14 pg_dumpall 完整备份指南
数据库·postgresql·oracle