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