oracle 递归用法,oracle递归用法

--测试3:再谈递归入口

--需求:根据多个地区名查询器所有下级地区

--错误:测试结果让人恼火,原来start with先于where执行,所以这个测试很失败,大家要注意

select s.areaname from s_coalarea_test s

where s.areaname='黑龙江'

or

s.areaname = '山西'

start with

s.areaname = s.areaname --既然start with只是过滤记录,那么当然我们也可以不在此处过滤,而直接用where过滤的结果了

connect by prior

s.aid=s.parentid

--测试5:递归关键字出现的位置

--需求:根据地区名称查找其所在省份

select s.areaname from s_coalarea_test s

where s.arealevel=1 --对遍历结果进行过滤

start with --start with 必须出现在where之后,但是可以是where and之间 入下例

s.areaname='大同'

connect by prior

s.parentid=s.aid

递归变形:

1.START WITH 可以省略

比如:SELECT son FROM tree

CONNECT BY PRIOR son = father;

此时不指定树的根的话,就默认把Tree整个

你可能感兴趣的:(oracle,递归用法)