본문 바로가기

카테고리 없음

조건문 함수인 CASE WHEN과 IF의 사용법 및 예제

1. CASE WHEN 문 사용법과 예제

CASE WHEN 문은 조건문을 표현할 때 주로 사용되는 함수로, 여러 개의 조건에 따라 다른 값을 반환하고자 할 때 유용합니다. 다음은 CASE WHEN 문의 사용법과 예제입니다.

CASE
  WHEN 조건1 THEN 반환값1
  WHEN 조건2 THEN 반환값2
  ...
  ELSE 기본반환값
END

위의 형식에서 CASE 다음에는 여러 개의 WHEN 절이 올 수 있습니다. 각 WHEN 절은 조건을 나타내고 해당 조건이 참이면 앞의 반환값이 반환됩니다. 마지막 ELSE 절은 만족하는 조건이 없을 때 반환되는 기본값입니다.

아래는 CASE WHEN 문을 사용한 예제입니다.

SELECT 
  name,
  CASE 
    WHEN age < 20 THEN '미성년자'
    WHEN age >= 20 AND age < 30 THEN '청년'
    WHEN age >= 30 AND age < 60 THEN '중년'
    ELSE '노년'
  END AS age_group
FROM users;

위의 예제는 users 테이블에서 각 사용자의 나이에 따라 다른 그룹을 할당하는 예제입니다. age 열의 값에 따라 해당하는 그룹을 반환하도록 CASE WHEN 문을 사용했습니다.

2. IF 문 사용법과 예제

IF 문은 조건문을 표현할 때 사용되는 함수로, 단일 조건과 해당 조건이 참일 경우와 거짓일 경우에 대한 처리를 간단하게 표현할 수 있습니다. 다음은 IF 문의 사용법과 예제입니다.

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

위의 형식에서 조건은 평가할 조건을 의미하며, 해당 조건이 참일 때 참일때의 값이 반환됩니다. 조건이 거짓일 경우에는 거짓일때의 값이 반환됩니다.

아래는 IF 문을 사용한 예제입니다.

SELECT 
  name,
  IF(age < 20, '미성년자', '성인') AS age_group
FROM users;

위의 예제는 users 테이블에서 각 사용자의 나이에 따라 미성년자와 성인을 구분하는 예제입니다. age 열의 값이 20보다 작으면 '미성년자'를 반환하고, 그렇지 않으면 '성인'을 반환하도록 IF 문을 사용했습니다.

3. CASE WHEN과 IF의 차이점

CASE WHEN 문과 IF 문은 조건문을 표현할 때 사용되는 함수들이지만, 몇 가지 차이점이 있습니다. 다음은 CASE WHEN과 IF의 주요 차이점입니다.

1. 문법 구조

  • CASE WHEN: 여러 개의 조건과 해당 조건에 따른 반환값을 설정할 수 있습니다. 기본값을 설정할 수도 있습니다.
  • IF: 단일 조건과 해당 조건에 따른 두 개의 값을 설정할 수 있습니다.

2. 사용 가능한 데이터 타입

  • CASE WHEN: 모든 데이터 타입을 사용할 수 있습니다.
  • IF: 숫자형 데이터 타입 또는 문자형 데이터 타입만 사용할 수 있습니다.

3. 코드 가독성

  • CASE WHEN: 복잡한 조건식을 구현할 수 있어 가독성이 높습니다. 여러 개의 조건을 처리해야 할 경우 유리합니다.
  • IF: 단순한 조건에 대해서만 처리 가능하며, 가독성이 낮을 수 있습니다. 단일 조건을 처리하는 경우 유리합니다.

4. 성능

  • CASE WHEN: 여러 개의 조건을 동시에 처리할 수 있어서 일반적으로 복잡한 로직을 처리할 때 사용됩니다.
  • IF: 간단한 조건 처리에 최적화되어 있어, 조건이 단순하고 간단한 경우 성능이 더 우수합니다.

앞선 예제에서 CASE WHEN 문은 복잡한 조건에 따라 다양한 값을 반환하고자 할 때 사용되었으며, IF 문은 단일 조건에 따라 두 가지 값을 반환하고자 할 때 사용되었습니다. 선택적으로 사용할 수 있으며, 상황에 맞게 적절한 함수를 선택하여 사용하면 됩니다.