Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ssis/2.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
Oracle 11g和SQL顶级查询_Sql_Oracle11g - Fatal编程技术网

Oracle 11g和SQL顶级查询

Oracle 11g和SQL顶级查询,sql,oracle11g,Sql,Oracle11g,使用SELECT TOP 5*FROM SOMETABLE时出错 ORA-00923:未在预期位置找到FROM关键字 我正在使用Oracle11g。我知道使用rownum也可以做同样的事情,但我只是想知道在Oracle中根本不支持SQL TOP的使用?要使SQL TOP在Oracle中正常工作,还需要做些什么吗 SQL TOP不适用于Oracle。Oracle不支持TOP。使用ROWNUM 不,Oracle不支持TOP 正如您所指出的,最好的方法是使用rownum。另一个选项是分析函数。rown

使用SELECT TOP 5*FROM SOMETABLE时出错

ORA-00923:未在预期位置找到FROM关键字


我正在使用Oracle11g。我知道使用rownum也可以做同样的事情,但我只是想知道在Oracle中根本不支持SQL TOP的使用?要使SQL TOP在Oracle中正常工作,还需要做些什么吗

SQL TOP不适用于Oracle。

Oracle不支持TOP。使用ROWNUM


不,Oracle不支持TOP

正如您所指出的,最好的方法是使用rownum。另一个选项是分析函数。

rownum关键字虽然可以获取所述的记录数,但只有在应用order by子句(如果有)后才能这样做

因此,如果SQL server查询如下所示,它将为您提供10条最近创建的记录

Select TOP 10 * from mytable order by created_date desc
但是为了适应Oracle,当你写这篇文章时,它会给你10条可能不是最新的记录,并按降序排列,这不是你想要的

Select * from mytable where rownum < 10 order by created_date desc
因此,使用这样的附加选项进行书写将有助于:

SELECT * FROM (Select * from mytable order by created_date desc) where rownum < 10 

是的。。。顶是不行的。但我想谷歌叔叔也会告诉你的……谢谢你提供关于SQLFIDLE的信息:@Oracle:SQL本打算成为一个标准。表现得像一个人-1:这没有用。。。如果这有帮助,为什么不提供正确的方法?例如,在这个例子中如何使用rownum或ROW_NUMBER?@Dems,它说它已经知道rownum,他问它是否完全不支持Oracle。如果我解释过关于rownum的事,可能有人也会因此而投了反对票。我真的不明白,如果我回答了问题,为什么要投否决票。
SELECT * FROM (Select * from mytable order by created_date desc) where rownum < 10