반응형
프로시저를 작성하다보니 where절에 마이바티스(Mybatis)의 if test 같은 방법이 필요해서 사용한 방법입니다.
컬럼명 = 컬럼명은 true를 이용해서 where절안에 case문을 넣는 것입니다.
CREATE OR REPLACE PROCEDURE SP_TEST
(
IN_YEAR IN VARCHAR2
IN_VALUE1 IN VARCHAR2
IN_VALUE2 IN VARCHAR2
)
IS
BEGIN
SELECT 컬럼A,컬럼B FROM TEST
WHERE 1=1
AND 컬럼A = IN_VALUE1
AND 컬럼B = CASE WHEN IN_YEAR = '2024' THEN IN_VALUE2 ELSE 컬럼B END;
END;
프로시저 호출시 받은 변수인 IN_YEAR란 값이 2024일경우 컬럼B에 대한 AND절을 사용해서 컬럼B = IN_VALUE2 값으로 조건을 추가하고 아닐경우 컬럼B = 컬럼B 이므로 사용하지 않는다는 조건이 됩니다.
반응형