case 관련 문의드립니다. 0 3 943

by 구루비 [2016.10.21 14:16:10]


      select  
CASE 
WHEN LIST_NO > REF_NO THEN LIST_SEQ=11
WHEN LIST_NO <= REF_NO THEN LIST_SEQ=22
END
from board;


이런식으로 사용을 할 수는 없을까요??
위에 쿼리처럼 list_no값이 ref_no값보다 클 경우에는 list_seq값에 list_no값을 적용시키고
list_no값이 ref_no보다 작거나 같을 경우에는 0 이라는 값을 넣어줄려고 하는데 
위 쿼리문으로 이리저리 변경하고 테스트를 해 봐도 오류가 납니다.ㅠㅠ
missing expression..
then 뒤에 특정 문자열이나 값을 넣게 하면 잘 되는데...컬럼값을 넣을려고 하면 안되네요..
방법이 있을까요?

by Kyle [2016.10.21 14:46:06]

when 과 then 사이에는 조건 판단문이 들어 가고

then 다음에는 추출값이 들어 가야 합니다.

그런데 위 쿼리는 then 다음에 "LIST_SEQ=11" 과 같은 조건 판단문이 들어 가서 에러가 발생한겁니다.

then 문 다음에는 조건판단문이나 대입문이 들어 갈 수 없습니다.


by Kyle [2016.10.21 14:48:49]

아래처럼 수정되면 될듯 합니다.

 

SELECT 
    CASE
        WHEN LIST_NO > REF_NO THEN 11
        ELSE 22
    END LIST_SEQ
FROM BOARD
;

 


by 구루비 [2016.10.21 15:19:20]

아... 제가 잘못 사용했네요..
검색하면서 봤는데 그런식으로 된 예제를 제가 못봤었네요^^;

눈이 나빠서 못본것일수도..ㅠㅠ

감사합니다.

댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입