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