개발이야기/MySQL

[MySQL] IF() 조건문 여러개 사용법, 예제

후린개발자 2023. 10. 23.
반응형

MySQL의 IF() 함수는 조건에 따라 값을 반환하는 데 사용됩니다. 주어진 조건을 평가하고, 조건이 참일 때는 하나의 값을, 거짓일 때는 다른 값을 반환합니다. IF() 함수는 데이터 가공, 조건부 필터링, 계산된 열 추가, 데이터 정제 등 다양한 데이터베이스 작업에 유용하며 복잡한 조건을 간단하게 처리할 수 있습니다.

 

 

사용법

IF(조건, 참일 때 값, 거짓일 때 값)

//예제
SELECT IF(age >= 20, '성인', '미성년자') AS 성인여부 FROM 사용자테이블;

 

-조건: 평가하려는 조건을 나타내는 표현식입니다.
-참일 때 값: 조건이 참일 때 반환할 값입니다.
-거짓일 때 값: 조건이 거짓일 때 반환할 값입니다.

위의 쿼리는 IF 함수를 사용하여 나이가 20세 이상이면 '성인'을 반환하고, 그렇지 않으면 '미성년자'를 반환합니다.
IF 함수는 단순한 조건부 구문을 작성하는 데 유용하며, 더 복잡한 로직을 구현할 때 CASE 표현식과 함께 사용되기도 합니다.

 

 

예제

1. 두 개의 중첩된 조건

테이블 데이터

 

SELECT
    user_name,
    age,
    gender,
    IF(age >= 20,
        IF(gender = '남성', '성인 남성', '성인 여성'),
        IF(gender = '남성', '미성년 남성', '미성년 여성')
    ) AS 메시지
FROM
    Users;

 

IF() 함수를 사용하여 사용자의 나이(age)와 성별(gender)에 따라 메시지를 동적으로 생성하는 예제입니다.

 

IF(age >= 20, IF(gender = '남성', '성인 남성', '성인 여성'), IF(gender = '남성', '미성년 남성', '미성년 여성')) AS 메시지: 이 부분은 중첩된 IF() 함수를 사용하여 두 가지 조건을 평가합니다. 먼저, 나이가 20세 이상인지 확인하고 그다음 성별을 확인합니다. 그 결과, 4가지 다른 메시지 중 하나가 반환됩니다. 나이와 성별에 따라 '성인 남성', '성인 여성', '미성년 남성', '미성년 여성' 중 하나가 메시지 열에 할당됩니다.

 

쿼리 결과

 

 

2. 다중 조건문

테이블 데이터

 

SELECT
		student_name,
    score,
    IF(score >= 90, 'A',
       IF(score >= 80, 'B',
          IF(score >= 70, 'C',
             IF(score >= 60, 'D', 'F')
          )
       )
    ) AS 학점
FROM
    Grade;

 

중첩된 IF() 함수를 사용하여 점수 범위에 따라 학점을 할당합니다.

 

쿼리 결과

 

반응형

댓글

💲 추천 글