Oracle查询取前10条和sqlserver查询取前10条 之间的差异是什么?

如题所述

两者差异在于语法不同。

sqlserver取前十条可用top或row_number来实现,但oracle中只能用row_number来实现。

 å¦‚表中数据:

现在要求按照ID倒序,取出前十位:

oracle中执行方法:

select t.id,t.name from
(select test.*,row_number() over (order by id desc) rn from test) t
where rn<=10;

结果:

sqlserver中执行方法:

select top 10 * from test order by id desc;

结果:

注意:sqlserver2005以上版本同样可以使用oracle中的语句来执行,得到的结果完全一样。

温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-02-16
和楼上说的一样,oracle和sqlserver查询前n条数据的时候,oracle是没有top关键字的,用的是rownum这个关键字来获得前n条的数据。本回答被提问者采纳
第2个回答  2013-02-18
没有差异,只是两个查询的语法有点相异而已。
第3个回答  2013-02-15
sqlserver:select top 10 * from table
oracle:select * from table where rownum<=10本回答被网友采纳
第4个回答  2013-02-16
楼上关于Oracle的语句有点问题,应该用子查询更好一些
相似回答