第 16 节 数据伪列
ROWNUM伪列
SELECT ROWNUM,empno,ename FROM emp;SELECT empno,ename FROM emp WHERE ROWNUM=1;SELECT ROWNUM,empno,ename FROM emp
WHERE ROWNUM<=5;数据分页显示
ROWID

ROWID面试题
最后更新于
SELECT ROWNUM,empno,ename FROM emp;SELECT empno,ename FROM emp WHERE ROWNUM=1;SELECT ROWNUM,empno,ename FROM emp
WHERE ROWNUM<=5;
最后更新于
SELECT *
FROM (
SELECT 查询字段,查询字段,...,ROWNUM rn
FROM 数据表
WHERE ROWNUM<=currentPage*lineSize) temp
WHERE temp.rn>(currentPage-1)*lineSizeSELECT *
FROM (
SELECT empno,ename,job,ROWNUM rn
FROM emp
WHERE ROWNUM<=10) temp
WHERE temp.rn>5;SELECT ROWID,deptno,dname,loc FROM dept;ROWID DEPTNO DNAME LOC
------------------ ---------- ---------------------------- --------------------------
AAAR3qAAEAAAACHAAA 10 ACCOUNTING NEW YORK
AAAR3qAAEAAAACHAAB 20 RESEARCH DALLAS
AAAR3qAAEAAAACHAAC 30 SALES CHICAGO
AAAR3qAAEAAAACHAAD 40 OPERATIONS BOSTONSELECT * FROM dept WHERE ROWID='AAAR3qAAEAAAACHAAB';CREATE TABLE mydept AS SELECT * FROM dept;SELECT ROWID,deptno,dname,loc FROM mydept;INSERT INTO mydept (deptno,dname,loc) VALUES (20,'RESEARCH','DALLAS');
INSERT INTO mydept (deptno,dname,loc) VALUES (20,'RESEARCH','DALLAS');
INSERT INTO mydept (deptno,dname,loc) VALUES (30,'SALES','CHICAGO');SELECT deptno,dname,loc,MIN(ROWID)
FROM mydept
GROUP BY deptno,dname,loc;DELETE FROM mydept
WHERE ROWID NOT IN (
SELECT MIN(ROWID)
FROM mydept
GROUP BY deptno,dname,loc);