[Spring] xml파일에서 rownum을 사용하는 방법

     

    목표 : 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>

     

     

     


     

    곁들이면 좋을 글

     

    인라인 뷰 예제

    => 인라인 뷰를 주로 사용하는 예 => TOP-N 분석

    www.notion.so

    참고 포스팅

     

     

    XML에서 CDATA란 무엇인가?

    XML 문서를 보면 가끔 이런 처리가 되어 있는 것을 볼 수 있습니다. 그럼 이 CDATA라는 게 과연 무엇인가 하는 궁금증이 드실 분도 계실 텐데요... 일단 CDATA가 무슨 뜻이냐 하면, 그것

    parkjuwan.tistory.com

     

     

    728x90

    댓글