Take the 2-minute tour ×
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. It's 100% free, no registration required.

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 dba.stackexchange.com/faq#howtoask –  FreshPhilOfSO Feb 15 '13 at 11:25
add comment

1 Answer

up vote 3 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. –  FreshPhilOfSO Feb 15 '13 at 11:46
add comment

Your Answer

 
discard

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.