Oracle 提供了多种方法来为查询结果添加自增序号,以下是常用的几种方法:

SELECT ROWNUM AS row_num, column1, column2FROM your_tableWHERE ROWNUM <= 100ORDER BY some_column;
注意:
ROWNUM 是在数据检索后分配的,如果在 ORDER BY 之前使用,可能会得到非预期的结果。
SELECT ROW_NUMBER() OVER (ORDER BY some_column) AS row_num, column1, column2FROM your_table;
-- RANK():相同值会有相同序号,下一个不同值会跳过相应位置SELECT RANK() OVER (ORDER BY some_column) AS rank_num, column1, column2FROM your_table;-- DENSE_RANK():相同值有相同序号,但不会跳过序号SELECT DENSE_RANK() OVER (ORDER BY some_column) AS dense_rank_num, column1, column2FROM your_table;
SELECT ROW_NUMBER() OVER (PARTITION BY dept_id ORDER BY salary DESC) AS dept_rank, employee_id, name, salary, dept_idFROM employees;
SELECT ROWNUM AS row_num, t.*FROM ( SELECT column1, column2 FROM your_table ORDER BY some_column) t;
-- 11-20条记录(第二页,每页10条)SELECT * FROM ( SELECT ROW_NUMBER() OVER (ORDER BY some_column) AS row_num, t.* FROM your_table t)WHERE row_num BETWEEN 11 AND 20;
以上为个人经验,希望能给大家一个参考,也希望大家多多支持本站。