본문 바로가기

내일배움캠프

MySQL에서의 if문과 case문

mysql에서도 조건문을 지원한다. 특정 컬럼의 값에 따라 다른 출력 결과를 보여줘야 할 상황에 쓰면 유용하다.

if문:

if(조건문, 참일때 값, 거짓일 때 값(선택))
예시: select if(required, 'true', 'false') from table;

if문 속에 if문을 중첩시킬 수 있다.

예시: select if(required, if(required1, 'true1', false1'), if(required2, 'true2', false2')) from table;

 

case문:

case-when문은 여러개의 조건을 한번에 묶어서 표현할 수 있다.

when에는 조건을 적고 then에는 조건에 일치하는 결과를 적으면 된다.

SELECT
	CASE
		WHEN permission_type_id = 1
		THEN '관리자'
		WHEN permission_type_id = 2
		THEN '판매자'
		ELSE '일반 유저'
END

예제:

출처:프로그래머스(https://school.programmers.co.kr/learn/courses/30/lessons/131113)

SELECT ORDER_ID, PRODUCT_ID, DATE_FORMAT(OUT_DATE, '%Y-%m-%d'), 
    CASE
        WHEN OUT_DATE <= '2022-05-01' THEN "출고완료"
        WHEN OUT_DATE > '2022-05-01' THEN "출고대기"
        WHEN OUT_DATE IS NULL THEN "출고미정"
    END AS "출고여부"
    FROM FOOD_ORDER ORDER BY ORDER_ID

 

번외:ifnull

ifnull은 해당 컬럼의 로우가 null일 때 대체할 값을 반환하는 함수이다.

SELECT IFNULL(column_name, '대체할 값') FROM [table_name];

 

'내일배움캠프' 카테고리의 다른 글

3진법 뒤집기  (0) 2024.05.31
최대공약수와 최소공배수 구하기  (0) 2024.05.31
행렬 간 덧셈  (0) 2024.05.28
Java의 정규표현식  (0) 2024.05.27
Spring 숙련주차 Part3  (0) 2024.05.24