본문 바로가기
공부,일/SQL

ROWNUM VS ROW_NUMBER

by fromnothing1 2021. 5. 24.

ROWNUM :

출력후 순번을 매겨주는 함수 

order by 절과 함께 사용하면 엉망이 되는데 

ROWNUM 으로 먼저 순번을 매기고 그후에 order by 절을 시행하기 때문이다.

 

SELECT 
ROWNUM,--순번매기기
A.PRODUCT_NAME,
A.STANDARD_COST
FROM
(
    SELECT 
    * 
    FROM 
    PRODUCTS 
    ORDER BY STANDARD_COST --서브쿼리내에서 정렬
)A

때문에 위와 같이 서브쿼리로 먼저 순번을 정리한 후에 ROWNUM 을 통해서 순번을 매긴다. 

 

ROW_NUMBER() 

:그룹별 순번을 반환하는 윈도우 함수 

 

SELECT 
ROW_NUMBER() OVER (ORDER BY A.STANDARD_COST) AS NUM, --그룹별 순번
A.PRODUCT_NAME,
A.STANDARD_COST
FROM
PRODUCTS A

위와 같이 partition by 를 사용하지 않고 order by 만 사용한다면 서브 쿼리절을 사용하지  않고 order by 된 row 의 순번을 매길 수 있다.

 

출처 : https://coding-factory.tistory.com/443

'공부,일 > SQL' 카테고리의 다른 글

가져온 database 복원하기  (0) 2021.05.26
MS-SQL SERVER 설치  (0) 2021.05.26
SQLD_34 오답  (0) 2021.05.24
NTILE  (0) 2021.05.24
SQLD 이론  (0) 2021.05.16

댓글