새소식

Database/MySQL

[MySQL] IF / CASE

  • -

 

 

IF

조건에 따라 값을 넣고 싶을 경우 사용

IF(조건식, 조건이 참일 때 출력값, 조건이 거짓일 때 출력값)

 

게임들 중 다운로드 수가 40이상인 것은 "추천", 아니면 "보통"이라는 값을 출력하고 싶다.

SELECT 다운로드, IF(다운로드 >=40, "추천", "보통") FROM steam.game;

 

 

 

 

 

CASE

  • IF양자택일만 가능하나, CASE여러 조건을 사용 가능하다.
  • 문자나 숫자같은 데이터넣는 자리에 CASE 문법을 넣을 수 있다.
CASE
    WHEN 조건식1 THEN 결과값1
    WHEN 조건식2 THEN 결과값2
    WHEN 조건식3 THEN 결과값3
END

 

다운로드가 40회 이상이면 "A", 40회 미만 10회 이상이면 "B", 10회 미만이면 "C" 등급을 매기고 싶다.

SELECT 다운로드,
CASE
    WHEN 다운로드 >= 40 THEN "A"
    WHEN 다운로드 >= 10 THEN "B"
    ELSE "C"
END as 등급
FROM steam.game;

 

 

 

 

카테고리가 어드벤쳐인 게임은 3점, 퍼즐인 게임은 2점, 나머지는 1점으로 계산한 총점을 구하고 싶다.

SELECT SUM(
CASE
    WHEN 카테고리 = "어드벤쳐" THEN 3
    WHEN 카테고리 = "퍼즐" THEN 2
    ELSE 1
END
) AS 총점
FROM steam.game;

 

 

 

728x90
Contents