728x90
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 |
댓글