TSQL--使用CTE完成递归查询
CREATE TABLE TB001
(
CategoryId INT PRIMARY KEY,
ParentCategoryId INT,
CategoryName NVARCHAR(200)
)
GO
WITH T
AS
(
SELECT T1.CategoryId,
T1.CategoryName,
T1.ParentCategoryId,
0 AS CategoryLevel
FROM TB001 AS T1
WHERE T1.ParentCategoryId IS NULL
UNION ALL
SELECT T1.CategoryId,
T1.CategoryName,
T1.ParentCategoryId,
T.CategoryLevel+1 AS CategoryLevel
FROM TB001 AS T1
INNER JOIN T ON T1.ParentCategoryId=T.CategoryId
)
SELECT *
FROM T
OPTION(MAXRECURSION 2)
--Note:注意控制最大递归数
TSQL--使用CTE完成递归查询的更多相关文章
- T-SQL中CTE表 with关键字
Select字句在逻辑上是SQL语句最后进行处理的最后一步,所以,以下查询会发生错误: SELECT YEAR(OrderDate) AS OrderYear, COUNT(DISTINCT Cust ...
- sqlserver的CTE实现递归查询
--递归查询 IF OBJECT_ID('DiGui','U') IS NOT NULL DROP TABLE DiGui CREATE TABLE DiGui( Id ), ParentId ) ) ...
- CTE 递归查询
使用CTE进行递归查询,能够实现对层次结构的数据的快速访问,非常有用. TSql CTE 递归原理探究 TSql 分层和递归查询 1,CTE的递归结构 递归查询的结构包括两部分:起始点和迭代公式. 使 ...
- TSql CTE 递归原理探究
CTE是如何进行递归的?产生递归的条件有三个,分别是 初始值 自身调用自身 结束递归的条件 1,示例代码 ;with cte as ( as jd union all as jd from cte ) ...
- SQL Server CTE 递归查询全解
在TSQL脚本中,也能实现递归查询,SQL Server提供CTE(Common Table Expression),只需要编写少量的代码,就能实现递归查询,本文详细介绍CTE递归调用的特性和使用示例 ...
- SQL Server CTE 递归查询全解 -- 转 学习
在TSQL脚本中,也能实现递归查询,SQL Server提供CTE(Common Table Expression),只需要编写少量的代码,就能实现递归查询,本文详细介绍CTE递归调用的特性和使用示例 ...
- SQL Server CTE 递归查询全解(转载)
在TSQL脚本中,也能实现递归查询,SQL Server提供CTE(Common Table Expression),只需要编写少量的代码,就能实现递归查询,本文详细介绍CTE递归调用的特性和使用示例 ...
- CTE 递归查询全解
TSQL脚本能实现递归查询,用户使用共用表表达式 CTE(Common Table Expression),只需要编写少量的代码,就能实现递归查询.本文详细介绍CTE递归调用的特性和使用示例,递归查询 ...
- 利用临时表实现CTE递归查询
一.CTE递归查询简介 --CTE递归查询终止条件在TSQL脚本中,也能实现递归查询,SQL Server提供CTE(Common Table Expression),只需要编写少量的代码,就能实现递 ...
随机推荐
- UI“三重天”之appium(一)
官方介绍: Appium is an open-source tool for automating native, mobile web, and hybrid applications on iO ...
- Hive常用函数
字符串函数 字符串长度函数:length 语法: length(string A) 返回值: int 说明:返回字符串A的长度 举例: hive> select length(‘abcedfg’ ...
- pycharm -- 小技巧1 (显示文件的代码结构以及错误提示)
背景介绍 今天上午,在调用同事昨天给的算法程序时出了点问题,于是请同事来我这边一起调代码.大致场景描述如下: 我:B神,你昨天下班前给我的那个算法程序我这边调用的时候出现错误啦,请你过来看下呗. 同事 ...
- [Python] numpy.ndarray.shape
ndarray.shape Tuple of array dimensions. x = np.array([1, 2, 3, 4]) print x.shape #(4, ) y = np.zero ...
- findbug、p3c、checkstyle、sonar安装使用
idea插件安装方式: Preferences—>Plugins—>查找插件—>Install Preferences—>Plugins—>Install plug fr ...
- springcloud(六) Hystrix 熔断,限流
Hystrix 熔断: 首先仍然启动Eureka,这里就不说了. OrderController.java: package com.tuling.cloud.study.user.controlle ...
- MySQL:Can't connect to mysql server 10038
1.防火墙高级设置 2.入站规则,新建规则 3.选择端口 4.输入MySQL端口例如'3306' 5.允许连接 6.下一步 7.自定义规则名称和描述,完成之后重新连接即可.
- unicat,multicast,broadcast区别
单播.多播和广播单播”(Unicast).“多播”(Multicast)和“广播”(Broadcast)这三个术语都是用来描述网络节点之间通讯方式的术语.那么这些术语究竟是什么意思?区别何在? 1.单 ...
- ubuntu,debian root密码忘记破解
开机启动的时候在grub引导时,按住e进行启动项编辑,修改开头有linux字符及最后又ro字符的行,将ro字符改为rw single init=/bin/bash按F10键进行启动即可进入单用户模式, ...
- django一对一数据库建立和进行数据传输的3种方式all()(对象) values()(字典) values_list()(元组)
class Business(models.Model): caption = models.CharField(max_length=32) code = models.CharField(max_ ...