1
2
3
4
5
6
7
8
9
SELECT 
                    AA.XXX                  
                  , MAX(DECODE(BB.CODE_CD,'1',BB.CODE_YN,'N'))CODE1_CD
                  , MAX(DECODE(BB.CODE_CD,'2',BB.CODE_YN,'N'))CODE2_CD
                  , MAX(DECODE(BB.CODE_CD,'3',BB.CODE_YN,'N'))CODE3_CD
                  , MAX(DECODE(BB.CODE_CD,'4',BB.CODE_YN,'N'))CODE4_CD
                  , MAX(DECODE(BB.CODE_CD,'5',BB.CODE_YN,'N'))CODE5_CD
    FROM 
....(중략).....
cs

 

IBATIS 를 사용하여 쿼리 출력시 행을 열로 변경해서 출력하는 경우 다음과 같은식으로 작성하였다.

코드컬럼에 값이 변경되는 경우가 발생하면 쿼리를 매번 수정해줘야되는 경우가 발생하여, 고민끝에 iterate를 사용하여 코드를 정리하기에 이르렀다.

 

 

1
2
3
4
5
6
7
8
9
<select id="XXX" ... remapResults=”true” > 
SELECT 
                    AA.XXX 
                    <iterate  property="paramList"   conjunction=""  >
                      , MAX(DECODE(BB.CODE_CD, #paramList[]# ,BB.CODE_YN,'N')) CODE_$paramList[]$
                    </iterate>                                     
    FROM 
....(중략).....    
</select>
cs

 

paramList 는 배열형태의 파라메터 이며 개수만큼 동적으로 컬럼을 생성하게끔 하였으며 컬럼이 동적으로 변경하는경우 remapResults=”true”

프로퍼티 속성을 명시해준다.

 

 

 

출처 : http://blog.naver.com/jkhljesus/70016617377







블로그 이미지

클라인STR

,