본문 바로가기

날리지/언어

Oracle에서 ROWNUM을 이용한 Order By 사용법

 

ROWNUM을 활용하여 간단하게 순번을 지정 할 수 있기 때문에 간편하게 순번들을 먹일것입니다.

 

(EX) "ABC" TABLE

 

A

B

C

TEST12

TESTTEST12

TESTTESTTEST12 

TEST123

TESTTEST123

TESTTESTTEST123 

 

 

 ->

SELECT ROWNUM, A, B, C FROM ABC

 

 

ROWNUM 

 1

 TEST12

 TESTTEST12

TESTTESTTEST12 

 2

 TEST123

 TESTTEST123

TESTTESTTEST123 

 

 

하지만...

 

ORDER BY를 사용한다면 상황은 달라집니다.

 

왜냐?

 

ROWNUM이 ORDER BY 보다 우선순위가 앞서기 때문이죠. (ROWNUM으로 순번 먹히고 ORDER BY로 재정렬..)

 

 

 

위 상황에서 대처하는 방법

 

=> RANK 함수를 활용하여 순번을 임의로 정의해주면 됩니다.

 

 

※ A컬럼을 기준으로 순번을 먹이는 예입니다.

 

SELECT (RANK() OVER(ORDER BY A)) ROWNUMS, A, B, C FROM ABC

 

 

 

 

 

정상적으로 출력되는 모습을 보실 수 있을 것입니다 ^^

 



FROM: https://jwklife.tistory.com/8 [인 생]