zoukankan      html  css  js  c++  java
  • Oracle rownum的理解

    --rownum
    select * from emp;
    select rownum,e.* from emp e;
    
    select rownum,e.* from emp e where rownum < 5 --显示前4条
    select rownum,e.* from emp e where rownum <= 5 --显示前5条
    select rownum,e.* from emp e where rownum = 5  --找不到记录 因为编号为5重新从1开始
    select rownum,e.* from emp e where rownum > 5 --找不到记录
    select rownum,e.* from emp e where rownum >= 5 --找不到记录
    
    select rownum,e.* from emp e order by sal desc; -- order by ,rownum失效 -->解决方案:用子查询
    --分页 取编号6-10得记录
    select rownum,e.* from emp e where rownum <= 10
    minus
    select rownum,e.* from emp e where rownum <= 5
    --分页(带排序) 取编号6-10的记录 方法1:
    select rownum,t.* from(  
    select e.* from emp e order by sal
    ) t where rownum <=10
    minus
    select rownum,t.* from(
    select e.* from emp e order by sal) t where rownum <= 5
    --分页(带排序)取编号6-10的记录 方法2:
    select e.* from emp e order by sal  --1.以工资排序 获取所有记录
    
    select rownum,t.* from (
    select e.* from emp e order by sal) t where rownum <=10  --2.获取前10条记录
    
    select t2.* from(
    select rownum rn,t.* from (
    select e.* from emp e order by sal) t where rownum <=10  --3.从前10条记录中获取6-10的记录
    )t2 where rn > 5
  • 相关阅读:
    ubuntu基本命令篇13用户管理
    网易邮箱繁体字信件乱码解决
    ubuntu基本命令篇16网络管理
    Ubuntu 10.04的安装
    DotNetNuke模块开发(一)
    查询进程打开的文件(转)
    Shell 的变量(转)
    Boot loader: Grub进阶(转)
    bash的通配符与特殊符号
    shell下的作业管理(转)
  • 原文地址:https://www.cnblogs.com/qingfengzhuimeng/p/6894888.html
Copyright © 2011-2022 走看看