表结构
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的数据存在。