Tuesday, October 11, 2016

DIFFERENCE BETWEEN ROWNUM PSEUDO COLUMN AND ROW_NUMBER() FUNCTION ?

WHAT IS THE DIFFERENCE BETWEEN ROWNUM PSEUDO COLUMN AND ROW_NUMBER() FUNCTION?
ROWNUM is a pseudo column present in Oracle database returned result set prior to ORDER BY being evaluated. So ORDER BY ROWNUM does not work.
ROW_NUMBER() is an analytical function which is used in conjunction to OVER() clause wherein we can specify ORDER BY and also PARTITION BY columns.
Suppose if you want to generate the row numbers in the order of ascending employee salaries for example, ROWNUM will not work. But you may use ROW_NUMBER() OVER() like shown below:
SELECT name, sal, row_number() over(order by sal desc) rownum_by_sal
FROM EMPLOYEE o

name
Sal
ROWNUM_BY_SAL
Hash
100
1
Robo
100
2
Anno
80
3
Darl
80
4
Tomiti
70
5
Pete
70
6
Bhuti
60
7
Meme
60
8
Inno
50
9
Privy
50
10

No comments:

Post a Comment