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的语句有点问题,应该用子查询更好一些

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) twhere rn<=10;结果:sql...

不同的数据库,比如(sqlserver、Mysql、Oracle)它们的数据库sql语句相同...
都遵循统一的标准,但存在一些小的差异。。(大同小异)比如选取前10行 sqlserver:SELECT TOP 10 * FROM table oracle:select * from table where rownum < 10 Mysql:select * from table limit 1,10 还有很多差异的东西。。暂时没有发现有整理好的完整差异资料 ...

SQLServer和Oracle数据锁定比较有哪些区别?
SQL Server通过立即锁定数据并阻塞所有访问该数据的连接,包括查询操作,直到交易提交或回滚。此策略可能降低系统性能和效率,因为数据被锁定的时间越长,其他数据访问用户可能需要等待更长时间。通过使用SQL Server随带的pubs示例数据库,可以直观展示数据锁定的影响。执行更新操作后,即使查询操作未能获取任何数...

SQL语句如何取前10条,10-30条记录?
sql server:读取前10条:select top (10) * from table1 where 1=1 读取后10条:select top (10) * from table1 order by id desc oracle:select * from table1 where rownum<=10 取10-30条的记录:select top 20 * from 表名 where id not in(select top 10 id from 表名)...

oracle和sql server取第一条记录的区别以及rownum详解
rownum是oracle特有的,sqlserver中不识别,具体用法见下方 orace取第一条记录:select * from test where rownum<=1;sqlserver取第一条记录:select top 1 * from test;

如何使用mysql查询前十条数据记录
MySql查询前10条数据sql语句为:select * from table_name limit 0,10 。通常0是可以省略的,直接写成 limit 10。0代表从第0条记录后面开始,也就是从第一条开始。

数据库问题,sqlserver top和oracle的rownum有什么不同呢下面语句是否可...
sqlserver中的查询语句(select top 50 * from userinfo)和oracle中查询语句(select * from userinfo where rownum<51)是否可以这样翻译过来 是的 再不牵扯到排序的时候完全等同。如楼上所言,如果有ORDER BY就有次序先后之分了。ORACLE rownum是对所有数据的物理排序,就是SELECT * FROM TAB里面,其...

SQL中显示查询结果的前几条记录
10 \/\/返回前10行记录,和limit10的结果一样,即limit0,n=limit n3、OracleOracle需要使用rownum。select * from table where rownum<=5; \/\/返回前5条数据4、DB2select * from table fetch first 5 rows only; \/\/返回前5条数据select * from (select 列名1,列名2,row_number() over() as ...

SQLSERVER取前10条记录怎样取
select top 10 A.name,B.sex from userinfo A,sexinfo B where A.id = B.id and A.sex = B.sexid order by A.id 要是真象你那么写的话,也可以 select top 10 C.name,C.sex from (select A.name name,B.sex sex ,A.id id from userinfo A,sexinfo B where A.id = B.id ...

sql server和oracle中查询结果返回指定行数的语句
推荐于2016-10-23 02:45:25 最佳答案 SQL Server下查询结果返回指定行用top命令。 如查询product表中的5行数据: 1 select top 5 * from product; Oracle下查询结果返回指定行用rownum来实现。 如查询emp表中的5行数据: 1 select * from emp where rownum<=5; 本回答由电脑网络分类达人 孟男男推荐 举报...

相似回答