sql无限递归查询

简介: --------------所有子集数据包括自己--------------------- CREATE PROCEDURE ALLSON @ID INT AS BEGIN WITH CTE AS ( SELECT ID,PID,NAME,0 AS ...
--------------所有子集数据包括自己---------------------
CREATE PROCEDURE ALLSON
@ID INT
AS
BEGIN
    WITH CTE AS
    (
        SELECT ID,PID,NAME,0 AS LVL FROM TEST1
        WHERE ID = @ID
        UNION ALL
        SELECT D.ID,D.PID,D.NAME,LVL+1 FROM CTE C INNER JOIN TEST1 D
        ON C.ID = D.PID
    )
    SELECT * FROM CTE
END


------------------所有父级数据-------------------
CREATE PROCEDURE ALLFATHER
@ID INT
AS
BEGIN
    WITH CTE AS
    (
        SELECT ID,PID,NAME,0 AS LVL FROM TEST1
        WHERE ID = @ID
        UNION ALL
        SELECT D.ID,D.PID,D.NAME,LVL+1 FROM CTE C INNER JOIN TEST1 D
        ON C.PID = D.ID
    )
    SELECT * FROM CTE
END


--FATHER
EXEC ALLFATHER 6

 

img_fa0be433d68c8212b2b0b3b1a564ccb1.png
如果本文对你有所帮助,请打赏——1元就足够感动我:)
支付宝打赏 微信打赏
联系邮箱:intdb@qq.com
我的GitHub: https://github.com/vipstone
关注公众号: img_9bde0f31ac4a0eca10b1bd7414b78faf.png


作者: 王磊
出处: http://vipstone.cnblogs.com/
本文版权归作者和博客园共有,欢迎转载,请标明出处。

相关文章
|
SQL 分布式计算 MaxCompute
odps sql 怎么实现递归查询?
odps sql 怎么实现递归查询?
844 1
|
7月前
|
SQL 关系型数据库 MySQL
简简单单 My SQL 学习笔记(3)——连接和嵌套查询
简简单单 My SQL 学习笔记(3)——连接和嵌套查询
|
SQL 数据处理 数据库
如何理解SQL中的自连接?
说起自连接,想必小伙伴们都听说过。在进行数据处理时经常会使用到自连接,特别是像一些连续性的问题中使用的比较多。
如何理解SQL中的自连接?
|
SQL 关系型数据库 数据库
10个高级SQL写法,包括窗口函数、联合查询、交叉查询、递归查询
10个高级SQL写法,包括窗口函数、联合查询、交叉查询、递归查询
219 1
|
SQL 监控 数据库
详谈sql语句优化
SQL语句优化是提高数据库性能的重要手段之一。下面将详细介绍SQL语句优化的几个方面。
137 0
|
SQL 缓存 NoSQL
ALL 代表这条 SQL 语句全表扫描了
ALL 代表这条 SQL 语句全表扫描了
122 0
|
SQL
sql表连接的几种方式
这里有两张表TableA和TableB,分别是姓名表和年龄表,用于我们例子的测试数据 TableA id name 1 t1 2 t2 4 t4 TableB id age ...
1030 0