본문 바로가기
Language/SQL

[SQL] CASE Statement (MySQL)

by SooooooooS 2024. 2. 6.
728x90

※ 문제 풀이를 하면서 SQL 복습 정리 ※

📖  참고 및 공식문서

CASE문

https://dev.mysql.com/doc/refman/8.0/en/case.html

 

MySQL :: MySQL 8.0 Reference Manual :: 15.6.5.1 CASE Statement

CASE case_value WHEN when_value THEN statement_list [WHEN when_value THEN statement_list] ... [ELSE statement_list] END CASE Or: CASE WHEN search_condition THEN statement_list [WHEN search_condition THEN statement_list] ... [ELSE statement_list] END CASE T

dev.mysql.com


1️⃣ Switch 문으로 사용하기

CASE case_value
    WHEN when_value THEN statement_list
    [WHEN when_value THEN statement_list] ...
    [ELSE statement_list]
END
  • case_value와 when_value를 비교한다.
  • 표현식이 동일할 경우 해당 절의 THEN 절을 실행한다.
  • 아무것도 해당이 안될 경우 ELSE 절을 실행한다.
  • ELSE 문은 생략이 가능하지만 when_value가 존재하지 않는 값에 접근할 경우 Case not found for CASE statement error가 발생한다.

2️⃣ IF 문으로 사용하기

CASE
    WHEN search_condition THEN statement_list
    [WHEN search_condition THEN statement_list] ...
    [ELSE statement_list]
END
  • search_condition : 조건식
  • 조건식이 true가 되면, 해당 THEN 절을 실행한다.
  • ELSE 문은 생략이 가능하지만 search_value가 존재하지 않는 값에 접근할 경우 Case not found for CASE statement error가 발생한다.
728x90