- 2
- 0
- 约2.31千字
- 约 2页
- 2024-01-04 发布于中国
- 举报
SQL循环递归查询
介绍
SQL中表⽰多层关系很多⼈都喜欢使⽤同⼀个表,在每个⼦节点指定⽗节点的⽅法来实现。
这样难免会出现循环查询的时候,⽐如,查找事业部上⾯所有部门的层级信息,这时候我们需要以以⾃连接的⽅式去递归查询,直⾄找到
最顶层,当然你也可以规定递归次数。
下⾯是⼀个简单的递归查询:
withTab(AreaCode,AreaName,ParentAreaCode)as
(
selectAreaCode,AreaName,ParentAreaCodefromSys_AreawhereAreaCode=1
unionall
selecta.AreaCode,a.AreaName,a.ParentAreaCodefromSys_Areaa,Tabbwhere
b.AreaCode=a.ParentAreaCode
)
select*fromTab
注意:tab()括号内的列别名是⼀定要有的,不然会有缺少列别名的错误
orcal有两种⽅式可以实现递归查询,⼀种是connectby另⼀种就是with
之后我们来简单了解⼀下with关键字的递归查询:
语法
wi
原创力文档

文档评论(0)