본문 바로가기
유틸/MySQL

[MySQL] 쿼리 조건문 사용법 (IF, CASE)

by lanuarius19 2022. 6. 18.
728x90

MySQL 조건문 사용법(IF, CASE)

 

MySQL 조건문 사용방법 정리

MySQL에서 조건문을 사용할 때는 IF문, CASE문을 대표적으로 사용합니다.

IF문을 사용할 때는 조건이 몇가지 없을 경우 사용하고, 그 반대일 경우 CASE문을 사용합니다.

자세한 내용은 아래 예를 들며 설명하겠습니다.

 

 

* 예제 1 - USE_YN 컬럼이 'Y'일때는 '사용'으로,  'N'일때는 '사용안함'으로 출력

IF(USE_YN = 'Y', '사용', '사용안함')

 

CASE
    WHEN USE_YN = 'Y' THEN '사용'
    WHEN USE_TN = 'N' THEN '사용안함'
END

위와 같이 IF문은 IF(조건, 참일경우, 거짓일경우) 와 같이 표현이 가능하며, CASE문은 WHEN~THEN절을 이용하여 다양한 조건 표현이 가능합니다. CASE문에서 중요한 점은 조건 선언이 끝난 후 반드시 END로 끝내야 한다는 점 입니다.

 

 

 

 

* 예제 2 - TYPE 컬럼이 'ANIMAL'일 경우 '동물'로, 'PLANT'일 경우 '식물'로, 그 외의 경우 '기타'로 출력

IF(TYPE = 'ANIMAL', '동물', IF(TYPE = 'PLANT', '식물', '기타'))

 

CASE
    WHEN TYPE = 'ANIMAL' THEN '동물'
    WHEN TYPE = 'PLANT' THEN '식물'
    ELSE '기타'
END

IF문도 CASE문과 같이 3가지 이상의 조건을 표현할 수는 있습니다. 하지만 조건이 많아질 경우 가독성이 떨어지고 표기 또한 어려워지기 때문에 조건이 많을 때는 CASE문을 권장하고 있습니다.

 

 

 

   

* 예제 3 - TYPE 컬럼이 'ANIMAL'일 경우 '동물'로, 'PLANT'일 경우 '식물'로 출력, 단 아래와 같은 조건으로 출력

TYPE GENDER 결과
ANIMAL M 동물(수)
ANIMAL W 동물(암)
PLANT M 식물(수)
PLANT W 식물(암)

 

IF(
     TYPE = 'ANIMAL', IF(GENDER = 'M', '동물(수)', '동물(암)')
   , IF(TYPE = 'PLANT', IF(GENDER = 'M', '식물(수)', '식물(암)'))
   , '기타'
  )

 

CASE
    WHEN TYPE = 'ANIMAL' THEN CASE
                                  WHEN GENDER = 'M' THEN '동물(수)'
                                  ELSE '동물(암)'
                              END
    WHEN TYPE = 'PLANT' THEN CASE
                                 WHEN GENDER = 'M' THEN '식물(수)'
                                 ELSE '식물(암)'
                             END
    ELSE '기타'
END

IF문과 CASE문 둘 다 위와 같은 이중 조건 표현도 가능하며, 이를 응용하면 삼중 조건 또한 가능하지만 위에서 말했듯이 가독성이 좋지 않기 때문에 실무에서는 거의 쓰이지 않습니다.

 

 

 

포스팅에서 잘못된 점이나 궁금하신 점이 있다면 댓글 남겨주세요!

읽어주셔서 감사합니다 :)

728x90

'유틸 > MySQL' 카테고리의 다른 글

[MySQL] 날짜 포맷 사용법 정리 (DATE_FORMAT 함수)  (34) 2022.06.12
[MySQL] 나이 계산  (4) 2022.06.12

댓글