SELECT * FROM
(SELECT TITLE FROM MOVIE ORDER BY RANK DESC)
WHERE ROWNUM > 4;
when i run the above query .it produces output as NO ROWS
SELECTED.why ?plz any one help me
Answers were Sorted based on User's Feedback
Answer / rachita
This is because you cannot use > operator with Top-N
Analysis.The operator which is used is only < less-then and
<= less-then-equal-to .You can also use = operator but only
for retrieving the top most value .
| Is This Answer Correct ? | 13 Yes | 1 No |
Answer / vamsi krishna
the reason behind this is rownum will be generated only
after selecting the row from the table.hence when you are
using inline views ,the outer select statement is having a
rownum and inner select statement is having a rownum,so due
to the ambiguity your query is not working.
i give the following change to ur query.
SELECT * FROM
(SELECT rownum as r1,TITLE FROM MOVIE )
WHERE r1 > 4;
| Is This Answer Correct ? | 5 Yes | 4 No |
Answer / dinesh a.
you can't use rownum > 4 ( you can use only rownum <
clause). not in inner query or inline view even in normal
query.
select empno from emp where rownum > 5 ..
The output you will get NO ROWS always ....
so the magic is only order by clause asc or desc pls see
below
suppose we have a table x with one column col1 and values
are 1 to 10...
SELECT rownum,rank,col1 FROM
(SELECT rownum rank,col1 FROM x ORDER BY col1 desc)
WHERE ROWNUM <= 6 /* last six rows mean > 4 */
/
ROWNUM RANK COL1
------ ---------- ----------
1 10 10
2 9 9
3 8 8
4 7 7
5 6 6
6 5 5
1 SELECT rownum,rank,col1 FROM
2 (SELECT rownum rank,col1 FROM x ORDER BY col1 asc)
3* WHERE ROWNUM <= 4 /* first 4 rows */
SQL> /
ROWNUM RANK COL1
---------- ---------- ----------
1 1 1
2 2 2
3 3 3
4 4 4
| Is This Answer Correct ? | 1 Yes | 0 No |
Answer / obed
You donot use '>4' for comparing
you must use '<=4'
if u used >4 its will not return any row because there in
no row is select >
| Is This Answer Correct ? | 1 Yes | 0 No |
Answer / mohan
select * from movie where rownum>4(select title from movie
rank()over(order by title desc);
| Is This Answer Correct ? | 1 Yes | 0 No |
Answer / imran raza
ORDER BY Clause inside Inline View is not permissible.So in
query (SELECT TITLE FROM MOVIE ORDER BY RANK DESC)it should
be only SELECT TITLE FROM MOVIE .
Moreover Order by can be used by specifying the name (
selected row) of coloumn in order by clause.
Instead of names numbers can also be used.ie Order by 1.
| Is This Answer Correct ? | 1 Yes | 1 No |
I have one table :EID,Depid,ename,sal I want to have max(sal) in each department.
5 Answers Microsoft, Oracle, TCS,
how to truncate date and get only time part 9:20:00
How do I escape a reserved word in oracle?
how to get required data from oracle source is like this ram_05_seetha lax_05_viswa bamr05frummy run_01_away sw_sas_trim i want my target data like ram_05_seetha lax_05_viswa to get data using %_05_% but it will give ram_05_seetha lax_05_viswa bamr05frummy how can i get my target data?
What is define in oracle?
How to shutdown your 10g xe server from command line?
Can cursor variables be stored in PL/SQL tables.If yes how. If not why?
How is it different from a normal table?
what are the advantages of running a database in NO archive log mode?
What is Public Database Link ?
How to lock and unlock a user account in oracle?
ABOUT IDENTITY?