sql CET实现循环

表结构

CREATE TABLE city
(
id INT IDENTITY(1,1) PRIMARY KEY,
NAME NVARCHAR(100),
ParentID INT ,
Parents NVARCHAR(100)
)

数据:

循环代码:

go
WITH CET_c AS
(
SELECT id,name,parentID FROM city WHERE id=4
UNION ALL
--循环步骤
--1.获取当前节点数据
--2.根据父parentID来关联
--3.关联不到循序结束
SELECT t.id,t.name,t.parentID FROM CET_c AS c INNER JOIN city AS t ON c.parentid=t.id
)
SELECT * FROM CET_c;

 结果:

总结:要做递归查询必须要有一个结束标志,本例子及为没有对于的parentid的数据存在。

原文地址:https://www.cnblogs.com/zhuyapeng/p/7495538.html