oracle嵌套时间段查询,Oracle的嵌套子查询

Oracle的嵌套子查询

(2008-07-24 23:52:48)

Oracle的子查询分为两类分别是嵌套子查询和相关子查询,这里要介绍的是嵌套子查询。

所谓嵌套子查询是指,子查询是一个独立的查询不与外部查询相关,子查询将被先执行,而且只被执行一次,子查询执行完成后,再执行外部的查询,外部查询在执行过程中会使用到子查询的结果。

下面是一个嵌套子查询的例子:

select ename,sal

from emp

where sal >

(select avg(sal) from emp);

其含义是找出在emp员工中所有工资要高于平均水平的员工的姓名和工资。

在这里oracle将会先执行select avg(sal) from emp这个子查询然后,然后在执行外部的查询。

对于嵌套在查询有几点需要注意:

1. 子查询一定要包含在一对括号内。

2. 将子查询放在比较运算符的右边

3. “order by”在子查询中是不需要,除非当你想使用一个top-n的分析

4. 当你的子查询结果预计只有一个时请使用单行操作符,当你的子查询结果预计有多个时,请使用多行操作符。

这里所谓的当行操作符就是我们常用的(>,=,<=,<>等等),所谓多行操作符就是在oracle的子查询中使用in,all,any,some,not

in等等

例如下面这段SQL语句的意义是找出那些deptno为20的人的姓名和工资

Select ename,sal

From emp

Where empno in

(

Select empno from emp where deptno = 20

);

当然这里我们完全没有必要使用子查询,之所以在这里用了子查询是因为,我们说明这里的子查询返回了多个结果,我们必须使用多行操作符。

分享:

a4c26d1e5885305701be709a3d33442f.png喜欢

0

a4c26d1e5885305701be709a3d33442f.png赠金笔

加载中,请稍候......

评论加载中,请稍候...

发评论

登录名: 密码: 找回密码 注册记住登录状态

昵   称:

评论并转载此博文

a4c26d1e5885305701be709a3d33442f.png

发评论

以上网友发言只代表其个人观点,不代表新浪网的观点或立场。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值