设为首页 收藏本站
查看: 718|回复: 0

[经验分享] oracle笔记(六)子查询

[复制链接]

尚未签到

发表于 2016-7-21 06:01:10 | 显示全部楼层 |阅读模式
子查询

1、一般用户登录报错shared memory realm does not exist解决问题办法,以系统管理员登录,键入startup open。

2、子查询:

      1)解决的问题:不能一步求解的时候,就可以考虑用子查询。

       2)注意的问题:

            a.将子查询放在括号中;

            b.采用合理的书写习惯;

            c.可以在主查询的where、select、from、having放子查询,但是不可以放在group by后面放子查询;

            d.当子查询放在from后面时,把子查询结果看成一张表。

            e.主查询与子查询可以不是同一张表,只要子查询返回的结果,主查询可以使用。

            f.一般不在子查询中使用order by,但在Top-n问题分析中,必须使用order by。

            g.一般情况,先执行子查询,再执行主查询,但是相关子查询除外。

            h.子查询分为单行子查询和多行子查询,单行子查询只能使用单行操作符,多行子查询只能使用多行操作符。

            i.子查询中的null值问题。

            j.select后面的子查询必须是单行子查询。单行子查询:子查询只返回一条记录。

            k.子查询可以嵌套使用。

3、如果子查询和多表查询都可以解决问题,理论上应该尽量使用多表查询。

4、多行子查询中的null值问题。子查询中含有null,不能使用not in操作符。

5、集合运算操作符union/union all、intersect、minus

        1)注意问题:a.参与运算的集合必须列数相同且类型一致。

                             b.采用第一个集合的表头作为最后的表头。

                             c.如果要排序,必须在每个集合后使用相同的order by。

                             d.可以使用括号改变运算顺序。

6、打开SQL语句执行时间命令set timing on。

7、rownum(伪列)行号永远安装默认的顺序生成,行号只能使用<,<=这样的,不能使用>,>=  

8、相关子查询: select empno,ename,sal,(select avg(sal) from emp where deptno=e.deptno) avgsal from emp e where sal>(select avg(sal) from emp where deptno=d.deptno);找到员工表中薪水大于本部门平均薪水的员工。把主查询中的某个参数传递给了子查询。

9、wm_concat()行转列函数。

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-247013-1-1.html 上篇帖子: oracle笔记(五)多表查询 下篇帖子: Oracle中的Case When 用法
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表