깜놀하는 해므찌로

Oracle LISTAGG 사용 예시 / Mysql GROUP_CONCAT 본문

IT

Oracle LISTAGG 사용 예시 / Mysql GROUP_CONCAT

agnusdei1207 2022. 9. 8. 08:53
반응형
SMALL
<!-- 엑셀 다운 -->
<select id="excelDownSelectList" parameterType="VO" resultType="VO">  
    /* VO.excelDownSelectList */   
    <![CDATA[  
        SELECT  ROWNUM																				excelRow
             ,  'OPEN-F-'||LPAD(A.EL_SEQ,5,'0')												  		docuNum
             ,  A.EL_SEQ																			elSeq
             ,  B.NAME || '(' || C.C_CODE_NM || ')'													rgstId
             ,  TO_CHAR(A.RGST_DT, 'YYYY.MM.DD')													rgstDt
             ,  A.CARD_NUM																			cardNum
             ,  (SELECT B.C_CODE_ENM FROM t_code B WHERE A.CARD_NUM = B.C_CODE_NM)					cardNm
             ,  CASE                    
                WHEN NVL(A.ATCH_FILE_ID,'')<>''	  
                THEN '첨부' 
                ELSE '미첨부'   
                 END 										   										atchFileId 
             ,  CASE    
                WHEN A.USE_YN = 'Y'   
                THEN '사용'     
                ELSE '미사용'         
                 END  																				useYn
             ,  CASE    
                WHEN A.STATE = 'Y'            
                THEN '확인'      
                ELSE '미확인'              
                 END 																				state  
             ,  A.EAT_DATE																			eatDate        
             ,  NVL((SELECT LISTAGG(NAME || '(' || TC.C_CODE_NM || ')', ', ') WITHIN GROUP(ORDER BY A.USER_SEQ) 
                       FROM t_ad_user TAD 
            LEFT OUTER JOIN T_CODE TC   
                         ON TC.C_CODE = TAD.POSITION
                      WHERE A.USER_SEQ LIKE '%' || (TAD.seq) || '%'    
                        AND TAD.AUTH_CODE <> 'opennote' 
                        AND TAD.AUTH_CODE <> 'allAdmin'), '-')	 userSeq
             ,  A.PRICE																				price
             ,  CASE      
                WHEN A.RSTRN_NAME IS NULL       
                THEN '-'   
                ELSE A.RSTRN_NAME
                END																					rstrnName 
             ,  A.ETC																				etc    
         FROM	t_eat_log A
LEFT OUTER JOIN	T_AD_USER B   
           ON	A.RGST_ID = B.SEQ
LEFT OUTER JOIN	T_CODE C
           ON	C.C_CODE = B.POSITION    
        WHERE	A.USE_YN = 'Y'    
    ]]>   
        <include refid="Where"/>   
    <![CDATA[   
     ORDER BY	A.RGST_DT ASC, A.EL_SEQ ASC   
    ]]>	
</select>

1. NVL 서브쿼리 : 사원 이름 (직급) 을 조회하는 쿼리 예시

반응형
LIST