`rownum` 是 Oracle 數據庫中的一個偽列,用于返回結果集中行的順序號。它表示每行在結果集中的行號,并且會在返回結果前按照查詢結果的順序進行排序。`rownum`只能在 `where` 子句中使用,不能在 `order by` 子句中使用。
當使用 `rownum` 時,它會在每行上生成一個唯一的行號。這個行號是在結果返回之前根據查詢結果的順序分配的,而不是根據表中數據的物理排序。因此,如果你在查詢中使用 `rownum` 進行篩選,它會在應用條件之前為每一行分配行號。
舉個例子,如果你有一個查詢如下:
```sql
SELECT * FROM employees WHERE rownum <= 5;
```
這個查詢將以某種順序返回前5行數據,而不管表中數據的實際順序如何。這意味著無法確定哪些行會被返回,除非指定了特定的排序條件來確保一致性。