삽질의 현장/- DataBase

[삽잡이::sql] CASE WHEN THEN WHEN THEN ELSE END !?

shovelman 2016. 7. 2. 12:08

case 하시면 뭐가 떠오르시나요?



삽잡이는

switch ~ case 문이 떠오르군요....


예 그렇습니다.... 

저는 컴공 출신 풋내기입니다...


SQL에서도 case 문이 있습니다.

뭐, 사실 if문도 있는 것 보면 그다지 이제 놀랄일도 없지요.


아무튼...

개인적으로는 조건이 많이 들어가는 Query문은 

성능상 좋지 않을 경우들이 많다고 생각하기에 

조심스럽게 사용해야한다 생각하지만...


뭐 모두 case by case니깐요~


그러면 한번 알아봅시다~


MySQL Reference Manual에는 이렇게 나와있습니다.


(출처_ MySQL Reference Manual)


뭐,,, 그런데 하나 이상의 프로그래밍 언어를 

다뤄보신 경험이 있다면 그렇게 어렵지 않게 느껴지실 것입니다.


CASE 문을 통해 Query에 조건문을 달게 되면,

반드시 END로 마무리해야한다는 사실!


예 그렇습니다. 

그렇다면~ 어떻게 사용할지 한번 Feel 을 느껴봅시다.



예! 사실 별거 없습니다!

우리 쫄지 맙시다!!!!

안쫄아~~~~~ 


CASE 문 이후로 나오는

WHEN은 조건을 의미합니다.

해당 조건에 일치한다면 THEN 이후에 것이 실행됩니다.

ELSE는 말 그대로 조건에 해당하지 않았을 때 실행되겠지요.



마지막으로 아래 예시를 보시며

아~ 이렇게 사용하는구나~


Just Feel It!!!! 



1
2
3
4
5
6
7
8
9
10
SELECT 
    name,
    CASE
        WHEN name = '삽잡이' TEHN 'shovelman'
        WHEN name = '삽' THEN 'shovel'
        WEHN name = '개발자' THEN 'programmer'
        ELSE '아돈노'
    END AS result
FROM
    korean_english_dictionary
cs




쉽죠잉~!?


굳~