数据库中的分页查询
一.rownum:
1.对数据库中查到的数据逻辑上重新编辑,每次查到的数据rownum不同。
2.不能使用between rownum between 2 and 4//不合法
3.只能使用<=关系,不能使用>关系
案例:
–查找出部门 2 和部门 4 中,工资最高第 2名到工资第 3 名的员工的员工名字,部门名字,部门位置
select rownum,salary,d.*
from departments d ,
(select salary, rownum no, department_id from(
select salary,department_id
from employees
where department_id between 2 and 4
order by salary
)
where rownum<=3)t
where d.dapartment_id=t.department_id and t.no>1
2.rowid
物理上的id,不变的,唯一的id
3.简单的多表查询
1.–得到每个月工资总数最少的那个部门的部门编号,部门名称,部门位置
–技巧:求分组函数中最少的,用rownum()函数
select d.*
from departments d,
(select e.department_id id from
(select sum(salary) sal,department_id
from employees
group by department_id
order by sum(salary)) e
where rownum=1) t
where d.dapartment_id=t.id
2.–查找出收入(工资加上奖金),下级比自己上级还高的员工编号,员工名字,员工收入
select e.*
from employees e,(
select salary,manager,dapartment_id
from employees e,departments d
where e.first_name=d.manager and e.department_id=d.dapartment_id//多表查询必须名字和id一样
)t
where e.salary>t.salary and e.department_id=t.dapartment_id