깜놀하는 해므찌로

Oracle DECODE 오라클 삼항연산자 예시 본문

IT

Oracle DECODE 오라클 삼항연산자 예시

agnusdei1207 2022. 8. 16. 16:08
반응형
SMALL
<select id="excelOverTimeSelectList" parameterType="vo" resultType="vo">
    /* vo.excelOverTimeSelectList */     
    <![CDATA[                      
        SELECT
                CASE WHEN C.totalHour IS NULL AND C.totalMin IS NULL
                     THEN '-'
                     ELSE totalHour || totalMin
                     END																																							totalTime					
                   , ROWNUM                                                                        excelRow   
                   , C.*  

                FROM(SELECT		
                            DECODE(NVL(A.TOTAL_HOUR, NULL), NULL, '', A.TOTAL_HOUR, A.TOTAL_HOUR || '시간') 																			totalHour
                         ,  DECODE(NVL(A.TOTAL_MIN, NULL), NULL, '', A.TOTAL_MIN, A.TOTAL_MIN || '분') 																				totalMin	

                         ,  (SELECT TAD.NAME FROM t_ad_user TAD WHERE TAD.USE_YN = 'Y' AND TAD.SEQ = B.RGST_ID)												        			    rgstId
                         ,	NVL(TO_CHAR(B.APPLY_DATE, 'YYYY.MM.DD'), '-')																														applyDate   
                         ,	TO_CHAR(STA_DATE, 'YYYY.MM.DD HH24:MI')										   																			staDate   
                         ,	TO_CHAR(END_DATE, 'YYYY.MM.DD HH24:MI')																													endDate  
                         ,  (SELECT LISTAGG(TAD.NAME, ', ') WITHIN GROUP(ORDER BY A.EMPLY_SEQ) FROM t_ad_user TAD WHERE A.EMPLY_SEQ LIKE '%' || '[' || (TAD.SEQ) || ']' || '%'  )	emplySeq  
                         ,	CONT							 	 					 				 																				cont

                      FROM	t_over_add A              
                      LEFT	OUTER JOIN t_over_time B  
                        ON 	B.USE_YN = 'Y'  
                       AND	A.OT_SEQ = B.OT_SEQ   
                     WHERE	A.USE_YN = 'Y'     
                       AND  B.STATUS = 'D'             
                ]]>     
        <choose>
            <when test='excelMonth != null and excelMonth != "" and excelMonth != "ALL"'>
              AND	TO_CHAR(A.STA_DATE, 'YYYY.MM') = #{schEtc01}
            </when>  
            <when test='excelMonth != null and excelMonth != "" and excelMonth == "ALL"'>
              AND	TO_CHAR(A.STA_DATE, 'YYYY') = #{schEtc01} 
            </when>  
         </choose>   
         <if test='schEtc04 != null and schEtc04 != ""'>
            AND   A.EMPLY_SEQ LIKE '%' || '['  || #{schEtc04} || ']'  || '%'
        </if>                 
    <![CDATA[ 
         ORDER	BY applyDate) C
    ]]>      
</select>
반응형
LIST