Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/81.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/database/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql Oracle不支持TOP_Sql_Database_Oracle - Fatal编程技术网

Sql Oracle不支持TOP

Sql Oracle不支持TOP,sql,database,oracle,Sql,Database,Oracle,我们不能在ORACLE的SQL中使用TOP命令来获取前n个排序行,因为它不支持它。但也有使用rank和rownum获得结果的方法,但这需要内部查询。我想知道除了在内部查询中使用rownum/rank之外,是否还有其他方法。我不知道rownum是什么。最好的办法是@PinnyM删除的答案 select * from (<your query here> order by <your ordering> ) t where rownum < xx

我们不能在ORACLE的SQL中使用TOP命令来获取前n个排序行,因为它不支持它。但也有使用rank和rownum获得结果的方法,但这需要内部查询。我想知道除了在内部查询中使用rownum/rank之外,是否还有其他方法。

我不知道rownum是什么。最好的办法是@PinnyM删除的答案

select *
from (<your query here>
      order by <your ordering>
     ) t
where rownum < xx
这比使用row_number或rank要好得多,因为rownum需要对值进行最少的处理


顺便说一下,TOP是特定于SQL Server和Sybase的。使用LIMIT的其他数据库。

Oracle 12c将具有FETCH FIRST和OFFSET。如果你能等那么久;我不明白为什么某些产品/环境要花这么长时间才能获得让开发人员更快乐的功能。@pst最近开始使用PostgreSQL而不是Oracle,我认为Oracle的优先级有所不同。PostgreSQL升级的主要受众是开发社区,但对于Oracle来说,它是整个商业社区,因此更强调大规模功能和性能,而不是开发人员的便利性。@Davidadridge噢,我不是说不要使用那些花费$$的企业功能,但我的意思是,花一小部分的时间让工作变得愉快。而甲骨文有足够的资金/资源/时间来做这件事。当然,许多企业产品线也是如此。@pst看起来他们可能从12c中得到了这个消息。这仍然是一个子查询,或者确切地说是OP不想要的派生表。@a_horse_,没有名字。问题是,他/她不希望rownum出现这种情况。我不知道那是什么。我假设OP是指行数乘以行数