`rownum` 是 Oracle 数据库中的一个伪列,用于返回结果集中行的顺序号。它表示每行在结果集中的行号,并且会在返回结果前按照查询结果的顺序进行排序。`rownum`只能在 `where` 子句中使用,不能在 `order by` 子句中使用。
当使用 `rownum` 时,它会在每行上生成一个唯一的行号。这个行号是在结果返回之前根据查询结果的顺序分配的,而不是根据表中数据的物理排序。因此,如果你在查询中使用 `rownum` 进行筛选,它会在应用条件之前为每一行分配行号。
举个例子,如果你有一个查询如下:
```sql
SELECT * FROM employees WHERE rownum <= 5;
```
这个查询将以某种顺序返回前5行数据,而不管表中数据的实际顺序如何。这意味着无法确定哪些行会被返回,除非指定了特定的排序条件来确保一致性。