0

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

1

1 Answer 1

4

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.

2
  • Thanks Phil for your answer. but can you please tell me tell till which version of oracle LIMIT is supported ? Commented Feb 15, 2013 at 11:40
  • It's not supported. It is rumored to be supported in version 12c, which isn't released yet.
    – Philᵀᴹ
    Commented Feb 15, 2013 at 11:46

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

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