在Oracle中,ROWNUM和ROW_NUMBER()都是用于进行行号分配的函数,但它们有一些关键的区别。
例如,下面的查询将返回一个包含行号的结果集,其中行号为1到10:
SELECT ROWNUM, column_name
FROM table_name
WHERE ROWNUM <= 10;
例如,下面的查询将返回一个包含行号的结果集,其中行号是根据指定的排序顺序分配的:
SELECT ROW_NUMBER() OVER (ORDER BY column_name), column_name
FROM table_name;
总结:
ROWNUM是在查询结果返回之后计算的,而ROW_NUMBER()是在查询执行期间计算的。
ROWNUM返回的是结果集中的行号,而ROW_NUMBER()返回的是根据指定排序顺序分配的行号。
ROWNUM是一个伪列,而ROW_NUMBER()是一个分析函数。