SELECT *
FROM DS
WHERE CASE
WHEN {@P_CD_MNG} IN ('P', 'C', 'T') THEN DS.FG_SUM = {@P_CD_MNG}
ELSE DS.CD_MNG = {@P_CD_MNG}
END
이렇게 하면 CASE문에서
ORA-00905: 누락된 키워드
오류가 발생하는데 뭘 잘못한걸까요ㅠㅠ
아니면 그냥 CASE문 쓰지말고 처리할까요?ㅠㅠㅠ
by 우리집아찌
[2017.07.21 16:28:34]
then else 뒤에 조건이 들어가지 않아요 원하는 결과를 표기해 주세요
by 달콤꼬야
[2017.07.21 17:04:01]
답변 감사합니다ㅠㅠ많은 도움 되었습니다.
by 마농
[2017.07.21 16:37:20]
-- 변경 전 --
WHERE CASE WHEN {@P_CD_MNG} IN ('P', 'C', 'T')
THEN DS.FG_SUM = {@P_CD_MNG}
ELSE DS.CD_MNG = {@P_CD_MNG}
END
-- 변경 후 --
WHERE CASE WHEN {@P_CD_MNG} IN ('P', 'C', 'T')
THEN DS.FG_SUM
ELSE DS.CD_MNG
END = {@P_CD_MNG}
by 달콤꼬야
[2017.07.21 17:04:03]
답변 감사합니다ㅠㅠ많은 도움 되었습니다.
by 긍률
[2017.07.25 16:08:56]
case 문의 결과값에는 명확한 값이 들어가야합니다. 자주하는 실수중 하나이니 적어 놓으시면 도움 되실거에요
댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.