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