在Oracle中,ROWNUM是一个伪列,可以用来给查询结果的每一行分配一个唯一的序号。它在查询结果返回之前就已经确定,而不是在查询结束后计算。使用ROWNUM可以实现分页、排序等功能。
下面是一些使用ROWNUM的常见示例:
- 使用ROWNUM获取前N条记录:
SELECT * FROM table_name WHERE ROWNUM <= N;
- 使用ROWNUM获取指定范围内的记录:
SELECT * FROM ( SELECT t.*, ROWNUM AS rn FROM table_name t WHERE ROWNUM <= end_row ) WHERE rn >= start_row;
其中,start_row和end_row是起始和结束的行号。
- 使用ROWNUM进行排序:
SELECT * FROM ( SELECT * FROM table_name ORDER BY column_name ) WHERE ROWNUM <= N;
这样可以获取排在前N位的记录。
需要注意的是,ROWNUM是在WHERE子句之前计算的,所以如果要使用ROWNUM进行筛选,必须将其嵌套在子查询中,然后在外部查询中使用。