[SQL] MySQL CASE절

Kim Hyen Su·2024년 8월 4일

SQL

목록 보기
9/15
post-thumbnail

개요

프로그래머스 문제를 풀던 중 조건에 따라 다른 결과값을 출력해야 하는 문제가 나왔습니다.

처음 생각했던 구문은 CASE 절입니다.

하지만, CASE 절을 사용해본 경험이 많지 않아서 헤깔렸고, 결국엔 공식 문서를 확인해가며 문제를 해결했습니다.

추후에도 이러한 상황이 발생하질 않기를 바라며, 이번 포스팅에서는 CASE 절에 대해서 간단하게 정리하겠습니다.

CASE절

기본 구조

CASE case_value
    WHEN when_value THEN statement_list
    [WHEN when_value THEN statement_list] ...
    [ELSE statement_list]
END CASE

또는

CASE
    WHEN search_condition THEN statement_list
    [WHEN search_condition THEN statement_list] ...
    [ELSE statement_list]
END CASE

위 구조에 따라서, 프로그래머스 "조건에 부합하는 중고거래 상태 조회하기" 문제를 풀이해보겠습니다.

우선, 해당 문제의 핵심은 다음과 같습니다.
status
'SALE' -> '판매중'
'RESERVED' -> '예약중'
'DONE' -> '거래완료'

위측 왼쪽 단어가 나올 때마다, 오른쪽 출력이 나오도록 구현해야 합니다. 이를 위 기본 구조를 참고하여 처리하면, 다음과 같습니다.

CASE status
WHEN "SALE" THEN "판매중"
WHEN "RESERVED" THEN "예약중"
WHEN "DONE" THEN "거래완료" 
END AS status

-- 또는

CASE
WHEN status = 'SALE' THEN '판매중'
WHEN status = 'RESERVED' THEN '예약중"
WHEN stauts  = 'DONE' THEN '거래완료'
END AS status

위처럼 구현한 결과 정상적으로 처리된 결과가 출력되는 것을 확인할 수 있습니다.

profile
백엔드 서버 엔지니어

0개의 댓글