2人参与 • 2026-03-20 • Oracle
oracle 提供了多种方法来为查询结果添加自增序号,以下是常用的几种方法:
select
rownum as row_num,
column1,
column2
from your_table
where rownum <= 100
order by some_column;注意:
rownum 是在数据检索后分配的,如果在 order by 之前使用,可能会得到非预期的结果。
select
row_number() over (order by some_column) as row_num,
column1,
column2
from your_table;-- rank():相同值会有相同序号,下一个不同值会跳过相应位置
select
rank() over (order by some_column) as rank_num,
column1,
column2
from your_table;
-- dense_rank():相同值有相同序号,但不会跳过序号
select
dense_rank() over (order by some_column) as dense_rank_num,
column1,
column2
from your_table;select
row_number() over (partition by dept_id order by salary desc) as dept_rank,
employee_id,
name,
salary,
dept_id
from 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;以上为个人经验,希望能给大家一个参考,也希望大家多多支持代码网。
您想发表意见!!点此发布评论
版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。
发表评论