Database/MySQL

[MySQL] 조건문 - IF / IFNULL / CASE~WHEN

루루23 2024. 10. 10. 17:11
반응형

IF

Syntax

IF(condition, value_if_true, value_if_false)

 

계속 사용했던 myhero 테이블에서 한 번 사용해보겠습니다~

SELECT IF(class >= 1000, 1, 0) is_strong FROM myhero;

 

결과 >

 

IFNULL

Syntax

IFNULL(expression, value_if_null)

 

제가 만든 테이블에 null값은 없지만? 이런식으로 사용합니다

SELECT name, IFNULL(name, 'unknown') AS name_status FROM myhero;

 

 

CASE

  • 주로 SELECT 절에서 사용
  • 결과값을 새로운 컬럼으로 반환
  • ELSE 생략 시 NULL 반환

Syntax

CASE
    WHEN condition1 THEN result1
    WHEN condition2 THEN result2
    ELSE default_result
END

 

Ex

#1
SELECT name, class,
CASE 
    WHEN class >= 1000 THEN 'strong'
    WHEN class >= 500 THEN 'moderate'
    ELSE 'weak'
END AS class_level FROM myhero;

#2
SELECT name, tier,
CASE tier
    WHEN '3' THEN 'strong'
    WHEN '1++' THEN 'moderate'
    ELSE 'weak'
END AS tier_level FROM myhero;

 

결과 > 왼쪽 1번, 오른쪽 2번

반응형