在Oracle中,ROWNUM和ROW_NUMBER()都是用于进行行号分配的函数,但它们有一些关键的区别。
- ROWNUM是一个伪列,它是在查询结果返回之后才计算的。它表示返回结果集中的行号,而不是物理存储中的行号。因此,如果在查询中使用ROWNUM,它会在最终结果集中返回行号,而不是原始表中的行号。
例如,下面的查询将返回一个包含行号的结果集,其中行号为1到10:
SELECT ROWNUM, column_name
FROM table_name
WHERE ROWNUM <= 10;
- ROW_NUMBER()是一个分析函数,它在查询执行期间计算,并为结果集中的每一行分配一个唯一的行号。它可以用于根据指定的排序顺序对结果集进行编号。
例如,下面的查询将返回一个包含行号的结果集,其中行号是根据指定的排序顺序分配的:
SELECT ROW_NUMBER() OVER (ORDER BY column_name), column_name
FROM table_name;
总结:
-
ROWNUM是在查询结果返回之后计算的,而ROW_NUMBER()是在查询执行期间计算的。
-
ROWNUM返回的是结果集中的行号,而ROW_NUMBER()返回的是根据指定排序顺序分配的行号。
-
ROWNUM是一个伪列,而ROW_NUMBER()是一个分析函数。
以上就是关于“oracle中rownum和row_number()有什么区别”的相关介绍,筋斗云是国内较早的云主机应用的服务商,拥有10余年行业经验,提供丰富的云服务器、租用服务器等相关产品服务。云服务器资源弹性伸缩,主机vCPU、内存性能强悍、超高I/O速度、故障秒级恢复;电子化备案,提交快速,专业团队7×24小时服务支持!
简单好用、高性价比云服务器租用链接:https://www.jindouyun.cn/product/cvm