oracle树状起点终点,oracle 树查询(oracle递归查询语句)

oracle 树查询(oracle递归查询语句)

2020-07-24 11:45:42

共10个回答

select*from表mstartwithm.id=1connectbym.parent=priorm.id;

5ab80d19c14e58009e915024da73a053.png

createtablet(cidvarchar(5),pidvarchar(5),cnamevarchar(20))goinsertintotvalues具体你还可以优化,把like里面的2换成其他cid既可查询对应的下属信息

98cf03904f7d9923e2c812ea417f2660.png

向下递归+叶子节点过滤就行了,例子:--模拟数据withtmp(id,pid)as(select'a',''from--只显示叶子节点startwitht.id='a'--递归起点,即查询条件connectbypriorid=pid--

7b01a661a9c8938fa653fc3749a58ef2.png

oracle里面可以用STARTWITHCONNECTBYPRIOR来实现递归查询代码如下select*fromtablenamestartwithcond1connectbycond2wherecond3;其中COND1是根结

5318525dcfd96e01f41077ea90e78110.png

在connectby后面加一个and条件,表.B追问:我例子举得不太好吧,a的大小和先后顺序没有直接联系.比如013017017021这2行换成013019019018018

68729c9439b3ed5aa65e57086bd82308.png

输入所要创建dblink的名称,自定义connecttodbuseridentifiedby“password”--设置连接远程数据库的用户名和密码using'192.168.196.76/branch';指定目标数据库的连接方式,可用tns名称在创建dblink时,要注意,有时候可能会报用户名和密码错误,但实际上我们所输入的账户信息是正确的,此时就注意将密码的大小写按服务器上所设置的输入,并在账号密码前号加上双引号(服务器版本不同造成的).

e52231ee7a9b040da8d02466996eee59.png

http://zhidao.baidu.com/link?url=fzTwjKvOMXxsMFDvAb--1TeX3afkXFyQNW1dWn8ULBbxcjEcDogTBdWL-MhulpZ-b3FEA5akGmHJGjh_CSyAQ_oracle递归查询Oracle中

6b00ae7c19a906bf5c26b72a16f1137d.png

如果树的层数固定就可以用语句查询,但效率比较低.例如你说的三层:selectid,v2.name+namefromt1innerjoin(selectid,v1.name+nameasnamefromt1innerjoin(selectid,namefromt1whereparentid=0)v1ont1.parentid=v1.id)v2ont1.parentid=v2.id

ac19d9bf123d54b86694374bd3554514.png

oracle递归查询Oracle中startbyprior子句用法connectby是结构化查询中用到的,其基本语法是:selectfromtablenamestartwith条件1connectby条件2where条件3

711481c24b8b10e4890eef3641ccf0ba.png

connectbyprior是结构化查询中用到的,其基本语法是:selectfromtablenamestartwith条件1connectbyprior条件2where条件3;例:select*fromtablestartwithorg_

ded1c373227b761dae97ea7ca18e0480.png

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值