Oracle数据库高级查询 -- 案例集锦

Oracle中的行号(rownum)不能为>,>=的原因:
因为Oracle数据库是一个行式数据库,取了第一行才能取第二行,取了第二行才能取到第三行,所以行号从Oracle中永远从第一行开始,既然永远从第一行开始,>,>=的条件永远为假

  • 案例一:分页查询显示员工信息:显示员工号,姓名,月薪
    分页查询:
    select rownum, r, tmpid, tname, sal, bumen
    from (select rownum r, tmpid, tname, sal, bumen
    from (select t.tmpid, t.tname, t.bumen, sal, rownum
    from tmp t
    order by sal desc) table1
    where rownum <= 8) table2
    where r >= 5;

  • 案例二:找到员工表中薪水大于本部门平均薪水的
    select t.tmpid,t.tname,t.sal,d.avgsal
    from tmp t ,(select bumen,avg(sal) avgsal from tmp group by bumen) d
    where t.bumen = d.bumen and t.sal > d.avgsal;

查询执行计划语句(耗费了多少系统资源):
explain plan for –执行
select * from username

select * from table(dbms_xplan.display);–查询

  • 案例三:
    这里写图片描述
    这里写图片描述

    select ci.ci_id, to_char(wm_concat(stu.stu_name)) STU_NAME
    from pm_ci ci, PM_STU stu
    where instr(ci.stu_ids, stu.stu_id) > 0
    group by ci.ci_id

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值