Notice
Recent Posts
Recent Comments
Link
«   2024/09   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30
Tags
more
Archives
Today
Total
관리 메뉴

인사이트

[SQL] ROWNUM 본문

ORACLE DB (SQL)

[SQL] ROWNUM

쿰쿵 2021. 5. 29. 18:18

오라클DB에서 제공하는 특별한 column 이 있다.

바로 rownum이라는 아이이다.

 

바로 예제로 가보겠다.

 

급여가 가장 높은 사람을 순서대로 세운 다음, 그 중 2~4번째인 사람의 데이터를 조회하라는 미션을 받았다.

원하는 결과가 나오지 않는 쿼리

난 아주 당당하게 위처럼 적었고, 당연히 실행될 줄 알았다.

왜냐면 저 의미자체가 emp라는 테이블에서 rownum2~4번째인 사람의 데이터만을 가져오라는 거니까

 

결과는 처참했다(나오지 않았다ㅎㅎ)

왜 안나왔을까? 문제가 없어보이는데 말이다.

 

2가지를 간과했었기 때문이다.

 

1. Rownum이 카운트를 할 땐 반드시 1부터 시작한다.

2. 쿼리 실행 순서는 from > where > group by > having > select > order by이다.

 

위 두 문제점해결하려면 어떻게 하면 될까?

1.Rownum1부터 카운트하게 해주면 된다.

2.Rownum을 아예 테이블 자체에 넣어서 정렬해주면 된다.

 

원하는 결과가 나오는 쿼리

해결책을 적용해서 위처럼 바꿔주면

짜잔!

이렇게 잘 나온다.

 

맨 앞에 있는 숫자 1,2,3시스템이 알아서 넣어주는 rownum이고, 두번째 RM이라는 열 아래있는 2,3,4는 내가 주황색부분에서 임의로 넣어준 rownum이다.