status(맵으로 넘긴 파라미터)라는 키값을 비교하여 sql문에서 분기처리를 하는데,
0 일때, and 조건을 실행하고
1,2,3 일 때, or 조건을 실행하고 싶었다.
세팅되어있는 ibatis는
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE sqlMap
PUBLIC "-//ibatis.apache.org//DTD SQL Map 2.0//EN"
"http://ibatis.apache.org/dtd/sql-map-2.dtd">
<isEqual> 태그를 사용하여 값을 비교하는 조건 분기처리를 하였다.
<isEqual property="status" compareValue="0" prepend="and">
(A_COLUMN IS NULL AND B_COLUMN IS NULL AND C_COLUMN IS NULL)
</isEqual>
<isEqual property="status" compareValue="1" prepend="and">
(A_COLUMN = #status# OR B_COLUMN = #status# OR C_COLUMN= #status#)
</isEqual>
<isEqual property="status" compareValue="2" prepend="and">
(A_COLUMN = #status# OR B_COLUMN = #status# OR C_COLUMN = #status#)
</isEqual>
<isEqual property="status" compareValue="3" prepend="and">
(A_COLUMN = #status# OR B_COLUMN = #status# OR C_COLUMN = #status#)
</isEqual>
※ 만약 NULL인지 NOT NULL인지 비교하고 싶다면 아래의 태그를 작성하면 된다.
<isEmpty property="변수명">
null 일 때
</isEmpty>
<isNotEmpty property="변수명">
not null 일 때
</isNotEmpty>
'01. Database' 카테고리의 다른 글
[DBeaver] 디비버-오라클 데드락(deadlock) 해제법 (0) | 2024.06.27 |
---|---|
[xml] 오라클 CLOB 데이터 화면에 뿌려주기 (0) | 2024.06.27 |
[SQL][Oracle] 엑셀다운로드 시간 단축했던 법 공유 (0) | 2024.06.20 |
[Oracle/오라클] Left outer join과 Left join의 차이? (0) | 2024.06.19 |
[Oracle/오라클] 오라클 날아간 데이터/10분 전 데이터 조회 (0) | 2024.06.19 |