SELECT A.EMPNO, B.JOB
FROM ATABLE A, BTABLE B
WHERE
(CASE WHEN :INSERT_ID ='100' THEN B.LEVEL_NO ='100' AND A.NAME_ID = B.LEVEL_NO AND A.NAME_ID ='01'
ELSE B.LEVEL_NO = :INSERT_ID AND A.NAME_ID = B.LEVEL_NO END);
이런식으로 입력변수(INSERT_ID)에 따라 WHERE 절 조건문 다르게 하고 싶은데 아무리 해도 안되네요...
CASE문에서 WHEN은 조건을 체크하는 역할(IF문이라고 보시면 됩니다)이며 THEN은 값을 반환하는 역할입니다.
즉 (CASE WHEN THEN ELSE END) -> 이것의 결과는 값을 반환하는 것이기 때문에 위와 같이 "B.LEVEL_NO ='100'" 이런 조건식이 위치할 수 없습니다.