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


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.

  • 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 clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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