oracle 递归使用

介绍oracle递归所涉及到的函数


start by prior子句用法
connect by 是结构化查询中用到的,


其基本语法是:
select ... from tablename

where 条件1

start with 条件2 
connect by 条件3 ;


例如:

很多时候,表结构会存在以下字段,

____________________

|     id           |  int  |  主键id |

|  parentId   | int  | 父级id   |

————————————


那么,如果涉及到业务,根据父级id 找到所属的主键id,

操作

方式1、直接条件查询父级id,则获取到主键id,

方式2、使用递归,根据父级id,递归查询获取主键id


分析

方式1 存在一个缺陷,如果该表数据存在多级别,那么该方式值获取到上一级,没法实现获取到顶级主键id


-- 根据子级获取父级id

SELECT * FROM tableName tn

START WITH tn.parentId=24 

CONNECT BY tn.id=prior tn.parentId ;

反之

connect by 里面对换位置,则实现根据父级id获取子级信息,如果想要实现多条件查询,可以使用where条件搭配使用







评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值