oracle rownum会变吗
Oracle中的rownum是一个伪列,它为查询结果集中的每一行分配一个唯一的编号。这个编号是逻辑序列,通常从1开始,每行分配一个递增的数字。rownum的值在执行相同的SQL查询时是不变的,即在一次查询过程中,一旦为某一行分配了rownum,该行的rownum值在查询期间将保持不变。12
然而,rownum的值在不同的查询或者不同的查询执行中可能会发生变化。例如,如果查询结果集发生变化(比如通过添加或删除WHERE子句中的条件),或者查询中的排序(ORDER BY)导致结果集的行顺序发生变化,那么rownum也会相应地变化。这是因为rownum是基于查询执行时的结果集动态分配的。
总结来说,rownum的值在相同的查询执行中是稳定的,但在不同的查询或查询条件变化时可能会变化。