본문 바로가기
DBMS/oracle

일련번호가 없는 테이블에서 정렬을 위해 rownum 사용

by 코디드 2023. 4. 19.

프로젝트를 하는데 회원정보 테이블에 no를 안넣어서 어떻게 할까 하다가

행번호가 자체적으로 설정되어 있다는게 기억이 났다.

 

그래서 찾아보니 단어 그대로 rownum 을 사용하면 된다고 한다.

(oracle만 가능하다고 함)

 

select rownum, username, userid, tel, email, rank, writedate, report from registerinfo order by username

 

위의 경우 행번호가 부여된 상태에서 username의 오름차순으로 정렬되기 때문에 rownum이 뒤죽박죽으로 나온다.

 

 

 

select rownum, a.username, a.userid, a.tel, a.email, a.rank, a.writedate, a.report 
from (select username, userid, tel, email, rank, writedate, report from registerinfo order by username) a

 

그렇기 때문에 username의 오름차순으로 정렬한 후에 순번을 매기는 방식으로 쿼리문을 짜준다.

 

 

그리고 연결된 DTO에 rownum 변수를 선언해주고 getter setter를 넣는 것도 잊지 말자!

 

 

 

 

 

 

참고)

https://velog.io/@oh-suyeon/Oracle-SQL-4.-ORDER-BY-%ED%8E%98%EC%9D%B4%EC%A7%95-%EC%B2%98%EB%A6%AC

 

Oracle SQL # 4. ORDER BY & 페이징 처리

Table 객체에는 데이터 저장/조회 시 순서가 보장되지 않습니다.원하는 순서대로 데이터를 조회하기 위해서는 데이터를 정렬하는 기능이 필요합니다. 이 글에서는 데이터를 정렬하는 ORDER BY 절과

velog.io

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

 

[Oracle] 오라클 순번 매기기 (ROWNUM, ROW_NUMBER) 함수

오라클 순번매기기 ROWNUM SELECT ROWNUM, A.PRODUCT_NAME, A.STANDARD_COST FROM PRODUCTS A ROWNUM이라는 시스템 함수를 사용하면 위와 같이 라인별 순번을 가져올 수 있습니다. 하지만 위와 같이 아무런 정렬이 되

coding-factory.tistory.com