在Oracle数据库中,我们可以使用ROWNUM
关键字进行分页查询,以下是一个两表联合分页查询的实战示例:
1、创建两个表:employee
和department
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、两表联合分页查询:
假设我们要查询第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。