*************需求1: 查询emp表中前5个员工*************************
使用伪列 rownum
每一张表 都有一列 字段名叫做 rownum 数据类型 number
这一个字段用来标示表中的每一条记录 第一条记录 rownum 值是1
第二条是2 依次类推 这个列是看不到的
select * from emp where rownum<=5
*************需求2: 查询emp表中第6-10名员工*************************
oracle的rownum 有个问题 只能和<=连用 ,>=就用不了了 如何解决?
口诀: 小于直接查、大于加行号
select * from
(select e.*,rownum r from emp e)
where r>=6 and r<=10
*************需求3:薪水最高的前五名雇员 (两层嵌套)*************************
select * from
(select * from emp order by sal desc)
where rownum<=5
*************需求4:薪水最高的6-10名雇员 (三层嵌套)*************************
select * from
(select t.*,rownum r from
(select * from emp order by sal desc) t)
where r>=6 and r<=10
**********************面试题: 各种数据的分页语句*************************
第一页 显示 1-10
第二页 显示 11-20
...
1.oracle
使用rownum
select * from emp where rownum<=5
2. mysql
select * from limit 0,5
第一个参数 0 从第一条开始
第二个参数 5 取5条
select * from limit 5,5 - 6-10条
3.sql server
top n
select top 5 * from emp