关于rownum

转载 2006年05月31日 18:33:00
使用过SQL Server或者MySql的"select top n toid, tf1, tf2 from sometable order by toid"查询方法的同学在Oracle中实现该功能也许纳闷了!
Oracle中没有"select top n ..."的用法, 那么怎么去实现该功能呢, 也许有人想到了使用"select toid, tf1, tf2 from sometable where rownum <=n order by toid "这种方式去实现。 其实这只是假命题, sometable中的rownum是物理属性, 自增的。 当sometable某些记录改变后, 这个rownum就不再连续了。
实现该功能,应该采用这样的方式"select * from (select toid,tf1,tf2 from sometable order by toid ) where rownum <=n"。 首先按照排序方式把数据罗列出来, 然后再取行号小于等于n的记录。 此时的rownum并不是物理的, 而是Oracle根据查询结果自动增加的, 所以永远是连续的。
举报

相关文章推荐

返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)