当前位置: 首页 > news >正文

Sql Server递归查询实例

有时需要完成递归查询,即不断对数据库进行查询,后一个查询条件需要使用前一个查询结构来构建。这时就需要使用CTE来完成。


1. 创建测试表:



CREATE TABLE NameList(
	[Id] [int] NOT NULL,
	[ParentId] [int] NOT NULL,
	[Name] [nvarchar](20) NULL
) ON [PRIMARY]






说明:
为演示递归查询,需要创建一个父子表。
id: 主键
parentId : 父id
name: 名称


查询:从根节点(没有父节点)出发,显示出每行的层数。
由于这个查询使用前一个查询结果来构造查询语句,因此需要使用CTE来完成递归查询。
declare @id int
set @id=1;
with CTE as (
select id,name, parentid, 0 as Level
from namelist
where ParentId=@id
UNION ALL
-- Recursive 
select n.id,n.name, n.parentid, Level+1 as Level
from namelist n
join CTE on n.ParentId=cte.id
)
select * from CTE
option(MAXRECURSION 500)




上例的递归层数设为500

相关文章:

  • Asp.net 多语言界面的实现方法...
  • SQL -- 使用PARTITION和RANK函数完成统计
  • GridView 实现固定表头,但可以纵向,横向滚动Item
  • 使用bot service创建azure bot
  • LeetCode -- Divide Two Integers
  • 系列文章:内容模型系统开发总结二(内容模型系统用例设计)
  • LeetCode -- Remove Duplicate Letters
  • LeetCode -- Wiggle Sort II
  • linux中增加自定义的shell作为系统自动运行的服务
  • LeetCode -- Rotate Function
  • TR069 协议 Firmware Update 一般流程
  • Azure Bot中的Attribute+Enum+流畅接口实现
  • 使用azure machine learning studio+多元神经网络学习完成血型预测
  • 使用azure machine learning studio+神经网络回归完成晚点航班预测
  • cognitive services系列 -- 使用微软机器学习cognitive-services中的文本分析模块
  • @angular/forms 源码解析之双向绑定
  • 【391天】每日项目总结系列128(2018.03.03)
  • 2017 年终总结 —— 在路上
  • 230. Kth Smallest Element in a BST
  • AzureCon上微软宣布了哪些容器相关的重磅消息
  • ES6语法详解(一)
  • Java应用性能调优
  • Median of Two Sorted Arrays
  • vue总结
  • webgl (原生)基础入门指南【一】
  • webpack4 一点通
  • 第13期 DApp 榜单 :来,吃我这波安利
  • 规范化安全开发 KOA 手脚架
  • 基于OpenResty的Lua Web框架lor0.0.2预览版发布
  • 将回调地狱按在地上摩擦的Promise
  • 聚簇索引和非聚簇索引
  • 如何打造100亿SDK累计覆盖量的大数据系统
  • 如何抓住下一波零售风口?看RPA玩转零售自动化
  • 实现简单的正则表达式引擎
  • 使用common-codec进行md5加密
  • 详解移动APP与web APP的区别
  • ​软考-高级-系统架构设计师教程(清华第2版)【第15章 面向服务架构设计理论与实践(P527~554)-思维导图】​
  • #Ubuntu(修改root信息)
  • (1)(1.19) TeraRanger One/EVO测距仪
  • (LeetCode) T14. Longest Common Prefix
  • (pojstep1.1.1)poj 1298(直叙式模拟)
  • (分布式缓存)Redis哨兵
  • (附源码)spring boot儿童教育管理系统 毕业设计 281442
  • (附源码)计算机毕业设计ssm电影分享网站
  • (附源码)计算机毕业设计SSM智慧停车系统
  • (机器学习-深度学习快速入门)第一章第一节:Python环境和数据分析
  • (力扣题库)跳跃游戏II(c++)
  • (三)centos7案例实战—vmware虚拟机硬盘挂载与卸载
  • (已解决)Bootstrap精美弹出框模态框modal,实现js向modal传递数据
  • (原創) 如何解决make kernel时『clock skew detected』的warning? (OS) (Linux)
  • (转)Scala的“=”符号简介
  • (转)scrum常见工具列表
  • (转)winform之ListView
  • .[backups@airmail.cc].faust勒索病毒的最新威胁:如何恢复您的数据?
  • .NET Core6.0 MVC+layui+SqlSugar 简单增删改查