2016-12-02 51 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?

相关问题