easy software

게시물 순번을 역순으로 표현하는 방법 본문

JAVA/일반

게시물 순번을 역순으로 표현하는 방법

JAVA 웹개발자 2020. 7. 27. 17:03

DB를 구축하고 공지사항 등과 같은 게시물들을 저장한 후 데이터를 보여줄 때 게시물 생성일 순으로 DESC 하여 데이터를 추출하는 경우가 많습니다.

1
2
3
4
5
6
7
8
9
10
11
12
13
SELECT *
FROM
    (
    SELECT
        ROW_NUMBER() OVER(ORDER BY CREATE_DATE DESC) AS RNUM ,
        KEY ,
        NOTICE_SUBJECT ,
        TO_CHAR(BN.CREATE_DATE, 'YYYY-MM-DD') AS CREATE_DATE
    FROM
        TEST_DB
    ) Z
WHERE
    Z.RNUM BETWEEN 1 AND 10
cs

위와 같은 형태로 추출하게 되는데요, 문제는 날짜는 최신날짜가 가장 먼저 조회되기는 하지만 순번이 1번이라는 점이죠.

 

보통 게시물 같은 경우에는 늦게 쓴 글의 순번이 큰 경우가 일반적입니다.

그런데 위와 같은 쿼리로는 늦게 쓴 글에 순번이 1번으로 붙겠죠.

 

이런 경우를 해결 할 수 있는 방법이 있습니다.

공식은 간단한데요, 아래와 같은 공식을 지켜주신 후 화면에 뿌려주시면 됩니다.
(화면에서 직접 스크립트나 EL로 처리하여도 됩니다.)

 

전체 게시물 조회 건수 - ((현재 페이지 번호 - 1) * 한 페이지당 보여지는 레코드 수 + 현재 게시물 출력 순서 )

 

이 공식을 사용한다면, 게시글 작성일자는 가장 최근이지만, 순번은 가장 큰 순번으로 부여되여 화면에 뿌려질 수 있습니다.

Comments