树形表结构:

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

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

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

1,2,4,5

SQL语句如下:

with cteCopy as
(
select * from [table] where id=
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=,需要返回的结果(条件为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<> FOR XML PATH('')), 1, 1, '') AS ids

返回

ids
1,2

[经典SQL语句]根据父级ID查找所有子级ID,并将所有ID用逗号隔开返回的更多相关文章

  1. 经典SQL语句大全以及50个常用的sql语句

    经典SQL语句大全 一.基础 1.说明:创建数据库CREATE DATABASE database-name 2.说明:删除数据库drop database dbname3.说明:备份sql serv ...

  2. 经典sql语句

    经典SQL语句大全 一.基础 1.说明:创建数据库CREATE DATABASE database-name 2.说明:删除数据库drop database dbname3.说明:备份sql serv ...

  3. [转] - 经典SQL语句大全

    经典SQL语句大全 一.基础 1.说明:创建数据库CREATE DATABASE database-name 2.说明:删除数据库drop database dbname3.说明:备份sql serv ...

  4. SQL Server-基础-经典SQL语句

    经典SQL语句 基础 .说明:创建数据库 CREATE DATABASE database-name .说明:删除数据库 drop database dbname .说明:备份sql server - ...

  5. 经典SQL语句--很全面

    经典SQL语句--很全面   一.基础 1.说明:创建数据库CREATE DATABASE database-name 2.说明:删除数据库drop database dbname3.说明:备份sql ...

  6. SQL之经典SQL语句大全

    经典SQL语句大全 一.基础 1.说明:创建数据库CREATE DATABASE database-name 2.说明:删除数据库drop database dbname3.说明:备份sql serv ...

  7. 常用经典SQL语句大全完整版--详解+实例 (存)

    常用经典SQL语句大全完整版--详解+实例 转 傻豆儿的博客 http://blog.sina.com.cn/shadou2012  http://blog.sina.com.cn/s/blog_84 ...

  8. 浅谈c#的三个高级参数ref out 和Params C#中is与as的区别分析 “登陆”与“登录”有何区别 经典SQL语句大全(绝对的经典)

    浅谈c#的三个高级参数ref out 和Params   c#的三个高级参数ref out 和Params 前言:在我们学习c#基础的时候,我们会学习到c#的三个高级的参数,分别是out .ref 和 ...

  9. 常用经典SQL语句大全完整版--详解+实例 《来自网络,很全没整理,寄存与此》

    常用经典SQL语句大全完整版--详解+实例 下列语句部分是Mssql语句,不可以在access中使用. SQL分类: DDL—数据定义语言(CREATE,ALTER,DROP,DECLARE) DML ...

随机推荐

  1. Java练习 SDUT-3339_计算长方形的周长和面积(类和对象)

    计算长方形的周长和面积(类和对象) Time Limit: 1000 ms Memory Limit: 65536 KiB Problem Description 设计一个长方形类Rect,计算长方形 ...

  2. oracle函数 mod(x,y)

    [功能]返回x除以y的余数 [参数]x,y,数字型表达式 [返回]数字 [示例] select mod(23,8),mod(24,8) from dual; 返回:7,0

  3. part11-LED驱动程序设计-part11.1-字符设备控制

  4. Python深入:02浅拷贝深拷贝

    对象赋值实际上是简单的对象引用.也就是说当你创建一个对象,然后把它赋给另一个变量的时候,Python并没有拷贝这个对象,而只是拷贝了这个对象的引用. 假设想创建一对小夫妻的通用档案,名为person. ...

  5. 云原生生态周报 Vol. 7 | Docker 再爆 CVE

    业界要闻 Docker 基础镜像 Alpine 爆出提权漏洞(CVE-2019-5021):该CVE影响自 Alpine Linux 3.3 版本开始的所有 Docker 镜像.该漏洞的机制在于 Al ...

  6. props & children

    一. choosing the type at runtime import React from 'react'; import { PhotoStory, VideoStory } from '. ...

  7. postman 中post方式提交数据

    post方式提交数据时,把参数填写在body中而不是pOST下面的哪一行

  8. DataTable添加单个或多个字段组成的主键,实现查找

    单列主键 DataTable fdt = CmmDb.GetDataTable(orgsql); fdt.PrimaryKey = new DataColumn[] { fdt.Columns[&qu ...

  9. poj 3624 Charm Bracelet(01背包)

    Charm Bracelet Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 29295   Accepted: 13143 ...

  10. Spring与C3p0连接数据库对事务操作

    maven包: <properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncodin ...