为了账号安全,请及时绑定邮箱和手机立即绑定

Oracle高级查询

  • 自连接,查询同一张表,但是给表赋予别名,比如FROM PRO a,PRO b WHERE ...

    查看全部
    0 采集 收起 来源:[Oracle] 自连接

    2021-05-10

  • ‌等值链接统计不到在a表存在,在b不存在的,where条件不成立,所以要用外链接(比如平时用到的规则中心),

    lift join。。。on。。。相当于A=B(+)

    right join。。。on。。。相当于A(+)=B;

    查看全部
    0 采集 收起 来源:[Oracle] 外连接

    2021-05-10

  • 1.最后一句等于前面三句加起来:

    按照部门,不同职位,统计工资总额

    同时按照部门统计工资总额,

    最后统计工资总额

    2.关于报表:

    break on deptno skip 2

    相同的部门号(deptno)只显示一次,不同的部门号跳过两行。

    3.关于页面展示:

    set pagsize 30

    让每页显示30条记录。


    注意:关于这部分,后面集合运算会再次举这个例子

    查看全部
  • a命令,append,表示在上条语句后面追加,

    a  desc,两个中间必须有两个以上空格。否则就相当于order by 2desc.

    查看全部
  • 排序的时候,可以写成order by 2这种,第二列;

    若写不存在的列,会出现如图的报错(order by 项必须是select-list 表达式的数目)

    查看全部
  • nvl(a列,0),若a列有值则返回a列,否则返回0,即:将空值转换为0http://img1.sycdn.imooc.com//609808020001482705880166.jpg

    查看全部
    0 采集 收起 来源:使用分组函数3

    2021-05-10

  • select wm_concat(s.stu_name) "stu_name" 

    from pm_stu s,pm_ci c 

    where instr(c.stu_ids,s.stu_id)>0 

    group by c.ci_id;

    查看全部
    0 采集 收起 来源:练习

    2021-05-04

  • 这题一拿过来,我首先想到了子查询直接用count函数计算

    select 

    (select count(*) from emp) "Total",

    (select count(*) from emp where to_char(hiredate,'yyyy')='1980') "1980",

    (select count(*) from emp where to_char(hiredate,'yyyy')='1981') "1981",

    (select count(*) from emp where to_char(hiredate,'yyyy')='1982') "1982",

    (select count(*) from emp where to_char(hiredate,'yyyy')='1987') "1987" 

     from dual;


    看到这个位置之后才知道可以借助decode返回数字来做sum累加,故意自己改成case when then else end


    select count(*) Total,

    sum(case to_char(hiredate,'yyyy') when '1980' then 1 else 0 end ) "1980",

    sum(case to_char(hiredate,'yyyy') when '1981' then 1 else 0 end ) "1981", 

    sum(case to_char(hiredate,'yyyy') when '1982' then 1 else 0 end ) "1982", 

    sum(case to_char(hiredate,'yyyy') when '1987' then 1 else 0 end ) "1987"

    from emp;

    查看全部
    0 采集 收起 来源:案例3

    2021-05-04

  • count(*)不会忽略空值,count(具体列名)只会统计非空
    查看全部
    0 采集 收起 来源:使用分组函数3

    2021-04-29

  • wm_concat行转列
    查看全部
    0 采集 收起 来源:使用分组函数2

    2021-04-29

  • 多表查询,取别名

    查看全部
    0 采集 收起 来源:练习

    2021-02-19

举报

0/150
提交
取消
课程须知
小伙伴们,学习本课程前需要掌握Oracle的语法基础,并且对Oracle的函数有所了解。如不了解这两部分内容,请移步《Oracle数据库开发必备利器之SQL基础》和《Oracle数据库开发利器之函数》两门教程。
老师告诉你能学到什么?
1、掌握分组查询 2、掌握多表查询 3、掌握子查询

微信扫码,参与3人拼团

意见反馈 帮助中心 APP下载
官方微信
友情提示:

您好,此课程属于迁移课程,您已购买该课程,无需重复购买,感谢您对慕课网的支持!