我们都知道HAVING中我们可以用Oracle子查询 ,而且两个查询的语句的结果是可做集合操作的,如果你想知道HAVING中我们是如何使用Oracle子查询的?以及两个查询的语句的结果是可做集合的实际操作是如何进行的?以下的内容就有相关的答案。
1. 查询语句可以嵌套
例如: SELECT …… FROM (SELECT …… FROM表名1, [表名2, ……] WHERE 条件) WHERE 条件2;
2. 何处可用Oracle子查询?
当查询条件是不确定的条件时
DML(insert, update,delete)语句里也可用子查询
HAVING里也可用子查询
3. 两个查询语句的结果可以做集合操作
例如:
并集UNION(去掉重复记录)
并集UNION ALL(不去掉重复记录)
10
J2EE @ zxw
差集MINUS,
交集INTERSECT
4. 子查询的注意事项
先执行括号里面的SQL语句,一层层到外面
内部查询只执行一次
如果里层的结果集返回多个,不能用= > < >= <=等比较符要用IN.
5. Oracle子查询的例子(1)
- SQL> select title,avg(salary) from s_emp
- group by title Having avg(salary) =
- (select min(avg(salary)) from s_emp
- group by title);
找到最低平均工资的职位名称和工资
子查询的例子(2)
Oracle子查询可以用父查询里的表名
这条SQL语句是对的:
- SQL>select cty_name from city where st_code in
- (select st_code from state where st_name='TENNESSEE' and
- city.cnt_code=state.cnt_code);
说明:父查询调用子查询只执行一次.
6.取出结果集的80 到100的SQL语句
Oracle处理每个结果集只有一个ROWNUM字段标明它的逻辑位置,
并且只能 用ROWNUM<100, 不能用ROWNUM>80。
以下是经过分析后较好的两种Oracle取得结果集80到100间的SQL语句
( ID是唯一关键字的字段名 )
语句写法:
- SQL>select * from (
- ( select rownum as numrow, c.* from (
- select [field_name,...]
from table_name where 条件1 order by 条件2) c)- where numrow > 80 and numrow <= 100 )
order by 条件3;
以上的相关内容就是对Oracle子查询的介绍,望你能有所收获。
分享名称:Oracle子查询过程中值得注意的事项
本文URL:http://www.shufengxianlan.com/qtweb/news17/349417.html
网站建设、网络推广公司-创新互联,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等
声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联