답변 주신 인라인 뷰의 쿼리문에는 ORDER BY절 FOR ORDERBY_NUM() 추가 SQL이
SELECT * FROM (
SELECT ORDERBY_NUM() ROWNO,
LAG(MSG_SEQ,1) OVER(ORDER BY NOTICE_YN DESC, REG_YMD DESC, MSG_GRP_NO DESC, MSG_ORD) AS PREV_SEQ,
LEAD(MSG_SEQ,1) OVER(ORDER BY NOTICE_YN DESC, REG_YMD DESC, MSG_GRP_NO DESC, MSG_ORD) AS NEXT_SEQ,
MSG_SEQ,
BBS_TITLE,
BBS_CONTENT,
REG_ID,
REG_DT
FROM BBS_NOTICE_MSG_TB M
WHERE BBS_CD='notice'
AND DEL_YN='n'
AND BBS_TITLE LIKE '%'||'시설'||'%'
ORDER BY NOTICE_YN DESC, REG_YMD DESC, MSG_GRP_NO DESC, MSG_ORD
)
WHERE MSG_SEQ=20842
이렇게 변경을 하라는 건가요?
이렇게 하면 성능에는 큰 차이가 없습니다. 추가하지 않았을때와 동일
상세 보기에서 해당 게시글 + 정렬을 잡았을때 바로 위 바로 아래 글도 함께 가져 오고 싶은데 row가 1개가 아니라 3개라도 상관이 없습니다.
개선 방법이 있나요?
안녕하세요.
큐브리드를 이용해주셔서 감사드립니다.
SELECT * FROM (
SELECT
LAG(MSG_SEQ,1) OVER(ORDER BY NOTICE_YN DESC, REG_YMD DESC, MSG_GRP_NO DESC, MSG_ORD) AS PREV_SEQ,
LEAD(MSG_SEQ,1) OVER(ORDER BY NOTICE_YN DESC, REG_YMD DESC, MSG_GRP_NO DESC, MSG_ORD) AS NEXT_SEQ,
MSG_SEQ,
BBS_TITLE,
BBS_CONTENT,
REG_ID,
REG_DT
FROM BBS_NOTICE_MSG_TB M
WHERE BBS_CD='notice'
AND DEL_YN='n'
AND BBS_TITLE LIKE '%'||'시설'||'%'
ORDER BY NOTICE_YN DESC, REG_YMD DESC, MSG_GRP_NO DESC, MSG_ORD
FOR ORDERBY_NUM() BETWEEN ? AND ?
)
WHERE MSG_SEQ=20842
예시
1page인 경우 BETWEEN 1 AND 10
2page인 경우 BETWEEN 11 AND 20
3page인 경우 BETWEEN 21 AND 30