- -- with一个临时表(括号中是你要查询的列名)
- with temp(ID,PID,Name,curLevel)
- as
- (
- --1:初始查询(这里的PID=-1 在我的数据中是最底层的根节点)
- select ID,PID,Name,1 as level from dbo.T_ACL_OU
- where Deleted = 0 and PID = -1
- union all
- --2:递归条件
- select a.ID,a.PID,a.Name, b.curLevel+1from T_ACL_OU a --3:这里的临时表和原始数据表都必须使用别名,不然递归的时候不知道查询的是那个表的列
- inner join
- temp b
- on ( a.PID=b.id) --这个关联关系很重要,一定要理解一下谁是谁的父节点
- )
- select * from temp --4:递归完成后 一定不要少了这句查询语句 否则会报错
sqlserver 简单的树形结构代码。
最新推荐文章于 2024-07-31 17:13:00 发布
![](https://img-home.csdnimg.cn/images/20240711042549.png)