在Oracle中,ROWNUM是一个伪列,用于返回查询结果集中的行号。以下是ROWNUM的一些用法:
- 返回前N行数据:
SELECT * FROM table_name WHERE ROWNUM <= N;
- 返回指定范围的数据:
SELECT * FROM ( SELECT t.*, ROWNUM AS rn FROM table_name t ) WHERE rn BETWEEN start_row AND end_row;
- 按条件过滤数据并返回前N行:
SELECT * FROM ( SELECT t.*, ROWNUM AS rn FROM table_name t WHERE condition ) WHERE rn <= N;
需要注意的是,ROWNUM是在查询结果集返回之后计算的,因此不能在WHERE子句中直接使用ROWNUM进行过滤。如果需要对结果集进行排序,可以将查询嵌套在子查询中,并在外层子查询中使用ROWNUM进行过滤。