当前位置:首页 > 行业动态 > 正文

oracle两表联合分页查询实战

在Oracle数据库中,我们可以使用ROWNUM关键字进行分页查询,以下是一个两表联合分页查询的实战示例:

1、创建两个表:employeedepartment

oracle两表联合分页查询实战

CREATE TABLE employee (
  id NUMBER(10) PRIMARY KEY,
  name VARCHAR2(50),
  age NUMBER(3),
  department_id NUMBER(10)
);
CREATE TABLE department (
  id NUMBER(10) PRIMARY KEY,
  name VARCHAR2(50)
); 

2、向表中插入一些数据:

INSERT INTO employee (id, name, age, department_id) VALUES (1, '张三', 25, 1);
INSERT INTO employee (id, name, age, department_id) VALUES (2, '李四', 30, 2);
INSERT INTO employee (id, name, age, department_id) VALUES (3, '王五', 35, 1);
INSERT INTO employee (id, name, age, department_id) VALUES (4, '赵六', 40, 2);
INSERT INTO employee (id, name, age, department_id) VALUES (5, '孙七', 45, 1);
INSERT INTO department (id, name) VALUES (1, '人事部');
INSERT INTO department (id, name) VALUES (2, '财务部'); 

3、两表联合分页查询:

oracle两表联合分页查询实战

假设我们要查询第2页的数据,每页显示2条记录,可以使用以下SQL语句实现:

SELECT e.id, e.name, e.age, d.name AS department_name
FROM employee e
JOIN department d ON e.department_id = d.id
WHERE ROWNUM <= 2 AND ROWNUM >= (2 1) * 2; 

在这个查询中,我们使用了ROWNUM关键字来限制查询结果的行数。WHERE ROWNUM <= 2 AND ROWNUM >= (2 1) * 2表示只返回第2页的数据,每页显示2条记录,注意,这里的行号是从1开始的,所以我们需要减去1。

oracle两表联合分页查询实战