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 |
How to calculate date and time differences in oracle?
Why we use bulk collect in oracle?
How do I uninstall oracle 11g?
How to enter a new row into a table interactively?
how to get last monday of a month?
Two triggers one is before insert and other is after insert are firing on a table.If 10 times you insert in a table.Then how many times before trigger and how many types after trigger will fire in pl/sql.
How to change system global area (sga) in oracle?
HI ALL, CAN ANYONE TELL ME THE DIFFERENCES BETWEEN SQL CLUSTURS,MSQL CLUSTERS,ORACLE CLUSTERS.......THANKS IN ADVANCE
master table and child table performances and comparisons in Oracle ?
What is a read only transaction in oracle?
How to pass parameters to procedures in oracle?
How do you increase the OS limitation for open files (LINUX and/or Solaris)?