Database Administrators Stack Exchange is a question and answer site for database professionals who wish to improve their database skills and learn from others in the community. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

I am trying to execute following on sqlDeveloper

SELECT salary FROM emp ORDER BY salary DESC LIMIT 4, 1;

But it is throwing following error:

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

share|improve this question
As an aside, if you find any answers to your questions useful, it's polite to mark them as accepted. See this link – Phil Feb 15 '13 at 11:25
up vote 4 down vote accepted

Oracle 11g doesn't support the LIMIT clause, though the impending 12c release is rumored to support it.

Anyway, you can do this using an analytic windowing function:

select * from
  select salary, row_number() over (order by salary desc) as rn
  from emp
where rn = 4;

You can also do this using rownum, but I find the above way to look cleaner.

Example SQL Fiddle for you to mess around with.

share|improve this answer
Thanks Phil for your answer. but can you please tell me tell till which version of oracle LIMIT is supported ? – Ram Dutt Shukla Feb 15 '13 at 11:40
It's not supported. It is rumored to be supported in version 12c, which isn't released yet. – Phil Feb 15 '13 at 11:46

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.