본문 바로가기

컴/데이터베이스

MySQL - CASE 문

프로그래밍 언어의 switch 문과 비슷

    CASE
        WHEN 조건1
        THEN '반환값1'
        WHEN 조건2
        THEN '반환값2'
        ELSE '조건에 맞지 않는 경우 반환값'
    END



WHEN과 THEN은 한쌍이어야 하고, 여러개가 있을 수 있다
OR나 AND를 이용해 조건을 지정할 수 있다
ELSE가 존재하지 않다면, 모든 조건에 맞지 않을 때 NULL을 반환

  • 예제 : 프로그래머스 '중성화 여부 파악하기' 문제
    중성화된 동물은 SEX_UPON_INTAKE 컬럼에 'Neutered' 또는 'Spayed'라는 단어가 들어있습니다. 동물의 아이디와 이름, 중성화 여부를 아이디 순으로 조회하는 SQL문을 작성
    이때 중성화가 되어있다면 'O', 아니라면 'X'라고 표시

          SELECT animal_id, name, CASE WHEN sex_upon_intake LIKE "%Neutered%" OR SEX_UPON_INTAKE LIKE "%Spayed%" THEN 'O' ELSE 'X' END AS 중성화
       FROM animal_ins;
NAME TYPE NULLABLE
ANIMAL_ID VARCHAR(N) FALSE
ANIMAL_TYPE VARCHAR(N) FALSE
DATETIME DATETIME FALSE
INTAKE_CONDITION VARCHAR(N) FALSE
NAME VARCHAR(N) TRUE
SEX_UPON_INTAKE VARCHAR(N) FALSE

[ANIMAL_INS 테이블 구조]

' > 데이터베이스' 카테고리의 다른 글

WITH문  (0) 2022.11.13
MySQL - WHERE절  (0) 2020.04.28
MySQL - 날짜 함수  (0) 2020.04.19
MySQL - group by, having  (0) 2020.04.18
프로그래머스 - SQL 연습  (0) 2020.04.16