기타 개념/Oracle

Choose, when, otherwise

워제하 2024. 12. 16. 10:50

동적 쿼리 중 중첩 if문을 대신 할 수 있는 것이다.

1. <choose>, <when>, <otherwise> 이해

 <if>태그와 같이 조건식이 참일 경우 쿼리문을 실행해주는 역할을 합니다. 다른점은 여러개의 <if>태그 사용경우 조건식이 true를 반환하는 <if>태그는 모두 쿼리문이 실행됩니다. 하지만 <choose> 태그내의 여러개의 <when> 태그문의 경우 조건식이 true를 반환하는 <when>태그를 찾으면 거기서 멈추고 해당 <when>태그의 쿼리만 실행합니다. 다시말해 조건식을 가진 여러개의 <when>태그 오로지 한개의 <when>태그내부 쿼리만 실행됩니다. 대부분의 프로그래밍 언어에서 사용되는 if else와 비슷한 역할을 합니다.

 

 

 <choose> 태그 안에서 <when>태그와 <otherwise>를 작성합니다. <when>태그는 각각 조건식(test 속성)을 가지며 여러번 작성할 수 있습니다. 실행 시 <when>태그의 조건식을 순서대로 확인하여 true를 반환하는 <when>태그 안의 쿼리문을 실행하게 됩니다. 만약 <when>태그의 조건식중 true 반환한 것이 없다면 <otherwise> 태그 내에 작성된 쿼리문이 실행됩니다. <otherwise>태그는 생략 가능합니다.

 

<choose>
	<when test="조건식1"> 쿼리문1 </when>
    	<when test="조건식2"> 쿼리문2 </when>
    	<when test="조건식3"> 쿼리문3 </when>
    	<when test="조건식4"> 쿼리문4 </when>
	<otherwise> 쿼리문5 </otherwise>
</choose>

 

 

 

 

 

참고 : https://kimvampa.tistory.com/178


'기타 개념 > Oracle' 카테고리의 다른 글

<foreach collection=“”>  (0) 2024.12.19
<if test = ‘’>  (0) 2024.12.19
Union, Union All  (2) 2024.09.26
테이블 권환 확인  (0) 2024.09.19
오라클 - 프로시저의 COMMIT  (1) 2024.09.06