• [经典SQL语句]根据父级ID查找所有子级ID,并将所有ID用逗号隔开返回


    树形表结构:

    id parentID isDel
    1 0 0
    2 1 0
    3 1 1
    4 2 0
    5 2 0

    一)根据父级ID查找所有子级ID,并将所有ID用逗号隔开返回

    ID=1,需要返回的结果(条件为isDel=0,含本身ID):

    1,2,4,5

    SQL语句如下:

    with cteCopy as
    (
    select * from [table] where id=1
    union all
    select a.* from [table] a join cteCopy b on a.parentID=b.id and a.IsDel=0
    )
    SELECT STUFF(( SELECT  ',' +convert(VARCHAR, id) FROM cteCopy FOR XML PATH('')), 1, 1, '') AS ids

    返回

    ids
    1,2,4,5

    二)根据子级ID查找所有父级ID,并将所有ID用逗号隔开返回

    ID=5,需要返回的结果(条件为isDel=0,不含本身ID):

    1,2

    SQL语句如下:

    with cteCopy as
    (
    select * from [table] where id=5
    union all
    select a.* from [table] a join cteCopy b on a.id=b.parentID and a.IsDel=0
    )
    SELECT STUFF(( SELECT  ',' +convert(VARCHAR, id) FROM cteCopy where id<>5 FOR XML PATH('')), 1, 1, '') AS ids

    返回

    ids
    1,2
  • 相关阅读:
    java web 初学
    学习2
    学习
    上课
    Java中字母大小写的转换
    心得体会
    servlet请求
    响应设置消息体
    servlet响应-头部信息的设置
    servlet的响应(一)
  • 原文地址:https://www.cnblogs.com/kandyvip/p/11913140.html
Copyright © 2020-2023  润新知