我正在尝试将分页添加到简单的选择查询中,例如
select rownum rownum_,t.* from (select id,name from table) t where rownum <=4
但是,当条件存在且条件不存在时,上述查询的行为会有所不同.但是在删除名称列时,行为是一致的.有谁能说出原因?
我知道rownum是在查询运行时确定的,我无法理解的是rownum< = n的where条件,更改顺序
解决方法
你必须明白rownum是一个伪列.
查询中的rownum列表示订单(第一个记录,第二个,第三个……)
然后返回记录顺序
select id,name from table
不保证.在您的请求中,与第一条记录关联的rownum将始终为1,因为第一条记录每次都可能不同.
总之,当您需要特定订单时,请始终使用ORDER BY.