MariaDB 제어 함수 사용법: IF, IFNULL, NULLIF, CASE
MariaDB에서 제어 함수는 조건에 따라 다른 값을 반환하는 데 사용됩니다. 이 글에서는 IF, IFNULL, NULLIF, CASE 함수의 사용법을 예제와 함께 알아봅니다.
IF 함수 사용법
IF 함수는 조건에 따라 서로 다른 값을 반환하는 함수입니다. 기본 구문은 다음과 같습니다.
IF(condition, value_if_true, value_if_false)예제:
SELECT name,
IF(age >= 18, 'Adult', 'Minor') AS age_group
FROM users;위 예제는 사용자의 나이에 따라 ‘Adult’ 또는 ‘Minor’를 반환합니다.
IFNULL 함수 사용법
IFNULL 함수는 NULL 값을 다른 값으로 대체하는 함수입니다. 기본 구문은 다음과 같습니다.
IFNULL(expression, alt_value)예제:
SELECT name,
IFNULL(phone, 'N/A') AS phone
FROM users;위 예제는 사용자의 전화번호가 NULL인 경우 ‘N/A’를 반환합니다.
NULLIF 함수 사용법
NULLIF 함수는 두 값이 같으면 NULL을 반환하는 함수입니다. 기본 구문은 다음과 같습니다.
NULLIF(expression1, expression2)예제:
SELECT name,
NULLIF(department, 'None') AS department
FROM users;위 예제는 사용자의 부서가 ‘None’인 경우 NULL을 반환합니다.
CASE ~ WHEN ~ ELSE ~ END 사용법
CASE 문은 조건에 따라 여러 값을 반환하는 함수입니다. 기본 구문은 다음과 같습니다.
CASE
WHEN condition1 THEN result1
WHEN condition2 THEN result2
...
ELSE result
END예제:
SELECT name,
CASE
WHEN score >= 90 THEN 'A'
WHEN score >= 80 THEN 'B'
WHEN score >= 70 THEN 'C'
ELSE 'F'
END AS grade
FROM students;위 예제는 학생의 점수에 따라 학점을 반환합니다.
활용 예제
다음은 각 제어 함수의 다양한 활용 예제입니다.
IF 함수 예제
SELECT name,
IF(salary > 5000, 'High', 'Low') AS salary_level
FROM employees;위 예제는 직원의 급여가 5000 이상이면 ‘High’, 그렇지 않으면 ‘Low’를 반환합니다.
IFNULL 함수 예제
SELECT name,
IFNULL(address, 'Unknown') AS address
FROM customers;위 예제는 고객의 주소가 NULL인 경우 ‘Unknown’을 반환합니다.
NULLIF 함수 예제
SELECT product_name,
NULLIF(discount, 0) AS discount
FROM products;위 예제는 제품의 할인이 0인 경우 NULL을 반환합니다.
▼ 실행 결과 화면

CASE 문 예제
SELECT name,
CASE
WHEN age < 18 THEN 'Child'
WHEN age BETWEEN 18 AND 64 THEN 'Adult'
ELSE 'Senior'
END AS age_group
FROM population;위 예제는 사람의 나이에 따라 ‘Child’, ‘Adult’, ‘Senior’를 반환합니다.
▼ 실행 결과 화면

참고할 만한 사이트
더 자세한 내용은 다음 사이트들을 참고하세요.
관련 이전 게시글
- MariaDB 데이터 형식 변환: CAST 및 CONVERT 함수
- MariaDB SELECT 문 사용법 및 DISTINCT 중복 제거
- MariaDB 조건부 집계: HAVING 절 사용법
- MariaDB 변수 사용법
- MariaDB WHERE 절 활용: BETWEEN, IN, LIKE 조건 사용법
이 글이 도움이 되셨다면 공유 부탁 드립니다.


![[SSMS] 로컬 서버(PC)에 설치한 MSSQL 서버 연결하는 방법](https://bluesharehub.com/wp-content/uploads/2022/02/img_41.png)
