목표 : Top N 분석을 이용해서 조회수가 가장 높은 5개의 게시글들을 조회하기
문제점
아래와 같이 rownum에 오류 메세지가 출력된다.
where 절의 rownum <= 5 이 문제였다. xml문서에 '<' 를 사용하게 된다면 이를 태그로 인식해서 오류가 난다.
해결방법
1. where <![CDATA[rownum <=5]]>을 이용하기
내 Ver.
( 이 방법은 수업에서 배운 내용은 아니고 **님께서 힌트를 주셨다. )
<select id="mainBoardList" resultMap="boardResult">
select rownum, b.*
from (select board_no, board_title, board_writer,count,create_date,change_name
from board
order by count desc) b
where <![CDATA[rownum <=5]]>
</select>
2. where rownum between 1 and 5를 이용하기
[추천] 선생님 Ver.
선생님께서 항상 rownum에 between ~ and ~를 사용하시는 이유가 여기에 있었다.
<select id="selectTopBoardList" resultMap="boardResult">
select *
from (
select
board_no
, board_title
, board_writer
, count
, to_char(create_date, 'YYYY-MM-DD') as create_date
, origin_name
from board
where status = 'Y'
order
by count desc
)
where rownum between 1 and 5
</select>
곁들이면 좋을 글
참고 포스팅
728x90
'🚨 Error' 카테고리의 다른 글
[IntelliJ Error] WAR 배포 및 톰캣 실행 시, Context Initialization Failed 오류 발생 (0) | 2022.12.02 |
---|---|
[IntelliJ Error] finished with non-zero exit value 1 (0) | 2022.02.21 |
[git] error: unable to create file <경로/파일명> Invalid argument (0) | 2022.02.15 |
[미해결] [SQL Developer] ORA - 12505 NS: listener does not currently know of SID given in connect descriptor (0) | 2021.03.29 |
[Eclipse] (0) | 2021.03.29 |
댓글