2016-12-02 87 views
1

我正在SQL Developer中執行以下查詢。使用LIMIT時SQL命令未正確結束

SELECT * FROM Person where person_name='rahul' order by created_time desc limit 10; 

當我執行它時,SQL Developer給我下面的錯誤。

ORA-00933: SQL command not properly ended 
00933. 00000 - "SQL command not properly ended" 
*Cause:  
*Action: 

我用下面的鏈接作爲參考。

https://www.techonthenet.com/sql/select_limit.php

我已經嘗試過

SELECT * FROM Person where person_name='rahul' order by created_time desc OFFSET 5 ROWS FETCH NEXT 10 ROWS ONLY; 

ORA-00933: SQL command not properly ended 
00933. 00000 - "SQL command not properly ended" 
*Cause:  
*Action: 
Error at Line: 1 Column: 75 

注意偏移不是作爲關鍵字處理。

+0

如果您刪除了任何更改, ? – Mihai

+0

不,還是一樣的。 –

回答

0

我已通過使用下面的查詢解決了問題。

SELECT * FROM Person where person_name='rahul' and rownum between 1 and 2 order by created_time desc; 
3

是的,這是因爲Oracle沒有或支持limit子句,因此你會得到ORA-00933錯誤。相反,使用FETCH .. OFFSET構造像

SELECT * FROM Person 
where person_name='rahul' 
order by created_time desc 
OFFSET 0 ROWS FETCH NEXT 10 ROWS ONLY; 

StackOverflow中有很多類似的問題。應該嘗試搜索相同的。示例這一個:How do I limit the number of rows returned by an Oracle query after ordering?

相關問題