[MySQL/DB] 제어 흐름 함수 (IF, IFNULL, NULLIF, CASE ~)

Tech/Database 2023. 1. 8. 12:09
728x90
728x90

제어 흐름 함수


프로그램의 흐름을 제어할 때 사용한다.

 

 

IF

IF(expr1, expr2, expr3) : expr1이 참이면 expr2, 거짓이면 expr3을 반환한다.

SELECT IF(100>100, '정답', '오답');
>> 오답

 

 

IFNULL

IFNULL(expr1, expr2) : expr1이 NULL이면 expr2, NULL이 아니면 expr1을 반환한다.

SELECT IFNULL(NULL, 2313);
SELECT IFNULL(2313, 2);
>> 2313 / 2

 

 

NULLIF

NULLIF(expr1, expr2) : expr1=expr2이면 NULL, 아니면 expr1을 반환한다.

SELECT NULLIF(1, 2);
SELECT NULLIF(1, NULLIF(1,2));
>> 1 / NULL

 

 

CASE

값을 서로 비교하거나, 표현식의 논리값에 따라 다른 값을 반환한다.

-- 여러 CASE들을 이어서 표현할 수 있다.
SELECT CASE 10 WHEN 0 THEN 'A'
		WHEN 1 THEN 'B'
		ELSE "WHAT?"               
		END CASE1,
	CASE 9  WHEN 0 THEN 'A'
		WHEN 1 THEN 'B'
		ELSE "NO"
		END CASE2;
                
>> CASE1 : WHAT? / CASE2 : NO

 

728x90
300x250
mag1c

mag1c

2년차 주니어 개발자.

방명록