WHERE절 질문합니다. 0 6 7,774

by 달콤꼬야 [2017.07.21 16:17:14]


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() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입