1、数据准备
假定有一个表DiGui,有两个字段Id int ParentId int
Id ParentId
4 0
5 0
7 0
2 1
8 5
15 5
9 7
14 11
30 15
23 15
41 18
104 23
42 30
39 30
53 39
67 39
88 39
107 39

2、目的:通过传入ParentId(=5),返回该记录的所有递归数据,即
Id ParentId
8 5
15 5
30 15
23 15
42 30
39 30
53 39
67 39
88 39
107 39

3、Sql语句实现

with temp ( [Id], [parentid])
as
(
select Id, parentid
from DiGui
where [parentid] = 15
union all
select a.Id, a.parentid
from DiGui a
inner join temp on a.[parentid] = temp.[Id]
)
select * from temp

最新文章

  1. 轻量级前端MVVM框架avalon源码分析-总结
  2. OpenNURBS to OpenCASCADE
  3. 我是这么给娃娃取名的(使用 node.js )
  4. day13---堡垒机
  5. Together
  6. css中px,em和rem的区别
  7. P1676陶陶吃苹果 - vijos
  8. centos 6.5 hadoop 2.3 初配置
  9. float
  10. 在Prefetcher中取消robots.txt的限制
  11. Jedis中的一致性hash
  12. 《算法导论》 — Chapter 7 高速排序
  13. 【转载】sql monitor
  14. AUTOML --- Machine Learning for Automated Algorithm Design.
  15. Selenium:三种等待方式
  16. Unity中巧用协程和游戏对象的生命周期处理游戏重启的问题
  17. 数据转换bug花了半天时间 Java.math.BigDecimal cannot be cast to java.lang.String
  18. sencha touch Model validations(模型验证,自定义验证)
  19. LoadLibrary失敗,GetLastError 返回127錯誤
  20. idata的各个类型

热门文章

  1. SQL服务器更改名称后
  2. input实时监听(input oninput propertychange onpropertychange)
  3. linux iostat命令详解 磁盘操作监控工具
  4. MYSQL数据库表中字段追加字符串内容
  5. 第三章 设计程序架构 之 设计实现Windows Azure 角色生命周期
  6. STM32单片机实现中断后不继续向下执行而是返回到main函数
  7. knockoutjs表格增加更新删除
  8. arcgis中求多点到一条曲线的最短欧几里得距离
  9. SQL中的内连接外连接和交叉连接是什么意思?
  10. golang的nil