oracle prior用法,Oracle start with ... connect by prior 用法

Oracle start with ... connect by prior 用法

语法:

select *

from 表名

where 条件1

start with 条件2

connect by prior 当前表字段=级联表字段

start with与connect by prior语句完成递归记录,形成一棵树形结构,通常可以在具有层次结构的表中使用。

start with表示开始的记录

connect by prior 指定与当前记录关联时的字段关系

代码:

--创建部门表,这是一个具有层次结构的表,子记录通过parent_id与父记录的id进行关联

create table DEPT(

ID NUMBER(9) PRIMARY KEY, --部门ID

NAME VARCHAR2(100), --部门名称

PARENT_ID NUMBER(9) --父级部门ID,通过此字段与上级部门关联

);

向表中插入如下数据,为了使代码简单,一个部门仅具有一个下级部门

●从根节点开始查询递归的记录

select *

from dept

start with id=1

connect by prior id = parent_id;

下面是查询结果,start with id=1表示从id=1的记录开始查询,向叶子的方向递归,递归条件是id=parent_id,当前记录的id等于子记录的parent_id

●从叶子节点开始查询递归的记录

select *

from dept

start with id=5

connect by prior parent_id = id;

下面是查询结果,递归条件按照当前记录的parent_id等与父记录的id

●对查询结果过滤

select *

from dept

where name like '%销售%'

start with id=1

connect by prior id = parent_id;

在下面的查询结果中可以看到,首先使用start with... connect by prior查询出树形的结构,然后where条件才生效,对全部查询结果进行过滤

●prior的作用

prior关键字表示不进行递归查询,仅查询出满足id=1的记录,下面是将第一个查询去掉prior关键字后结果

select *

from dept

start with id=1

connect by prior id = parent_id;

相关文档:

虽然学习Java很久了,自己也连接过一些数据库,比如mysql之类的,如今呢,也学习了一段时间的Oracle,然而呢,今天是我第一次连接Oracle,嘿嘿,应该还不算太迟吧。

今天呢,有点笨拙,大家莫笑!

我这是一个查询例子

首先,� ......

Oracle最新认证题库资料下载

Actualtests Oracle 1Z0-200 V11.07.08

Actualtests Oracle 1Z0-211 V11.10.08

Actualtests Oracle 1Z0-212 V11.07.08

Actualtests Oracle 1Z0-213 V11.07.08

Actualtests Oracle 1Z0-101 V11.07.08

Actualtests Oracle 1Z0-132 V11.07.08

Actualtests Oracle 1Z0-140 V11.21.08

Actual ......

---------数学函数

1.绝对值

S:select abs(-1) value

O:select abs(-1) value from dual

2.取整(大)

S:select ceiling(-1.001) value

O:select ceil(-1.001) value from dual

3.取整(小)

S:select floor(-1.001) value

O:select floor(-1.001) value from dual

4.取整(截取)

S:select cast(-1.002 as int) v ......

(1)      选择最有效率的表名顺序(只在基于规则的优化器中有效):

ORACLE的解析器按照从右到左的顺序处理from子句中的表名,from子句中写在最后的表(基础表 driving table)将被最先处理,在from子句中包含多个表的情况下,你必须选择记录条数最少的表作为基础表。如果有3个以上的表连接查询, 那 ......

1.使用产品:arcsde 9.3+oracle 10.2.0.1

2.问题描述:用arcmap访问空间数据,操作几分钟,arcmap无反应,数据库服务器端cpu占有率100%,gsrvr.exe进程数10+。

3.解决办法:升级oracle版本从10.2.0.1升级到10.2.0.3或者.2.0.4。

4.原因:据esri工程师所称,oracle10.2.0.1版本存在与arcgis不兼容的无法调节的bug。目前升 ......

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值