在使用SELECT TOP 5 * FROM SOMETABLE
給我一個錯誤的Oracle 11g和SQL查詢TOP
ORA-00923:FROM關鍵字未找到預期
我使用Oracle 11g。我知道使用rownum
來做同樣的事情,但只是想知道SQL TOP的用法在Oracle中完全不受支持?任何需要做額外的事情來使SQL TOP在Oracle中工作?
在使用SELECT TOP 5 * FROM SOMETABLE
給我一個錯誤的Oracle 11g和SQL查詢TOP
ORA-00923:FROM關鍵字未找到預期
我使用Oracle 11g。我知道使用rownum
來做同樣的事情,但只是想知道SQL TOP的用法在Oracle中完全不受支持?任何需要做額外的事情來使SQL TOP在Oracle中工作?
感謝提供有關SQLFiddle :) :)信息 – neo
@Oracle:SQL意欲是一個標準。行爲就像是一個! – Bitterblue
不,Oracle不支持TOP
。
正如您所指出的,最好的方法是使用rownum
。另一種選擇是分析功能ROW_NUMBER
。
關鍵字rownum
,雖然它讓你說不。的記錄,只有在應用了order by
條款後纔有這種記錄。
所以如果SQL Server查詢如下,它會給你10個最近創建的記錄。
Select TOP 10 * from mytable order by created_date desc
但適合甲骨文,當你寫這篇文章,它可以讓你的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
燁...... TOP是沒有去。但我認爲谷歌大叔會告訴你,太... – ppeterka