순간을 기록으로

[프로그래머스] 중성화 여부 파악하기/ MySQL 본문

Problem Solving

[프로그래머스] 중성화 여부 파악하기/ MySQL

luminous13 2022. 2. 16. 13:47

문제

https://programmers.co.kr/learn/courses/30/lessons/59409

 

코딩테스트 연습 - 중성화 여부 파악하기

ANIMAL_INS 테이블은 동물 보호소에 들어온 동물의 정보를 담은 테이블입니다. ANIMAL_INS 테이블 구조는 다음과 같으며, ANIMAL_ID, ANIMAL_TYPE, DATETIME, INTAKE_CONDITION, NAME, SEX_UPON_INTAKE는 각각 동물의 아이디

programmers.co.kr

풀이

CASE문을 사용할 수 있는지 물어보는 문제이다. CASE문을 사용하면 데이터 값을 변환할 수 있습니다. NULL을 0으로도 바꿀수도 있습니다.

 

여기에서는 SEX_UPON_INTAKE의 문자열을 특정 기준에 따라 'O'과 'X'로 바꾸는 것이 문제의 핵심입니다.

 

우선 동물의 아이디와, 이름, 중성화 여부를 조회합니다. 중성화 여부는 SEX_UPON_INTAKE열의 값을 조회해서 'Neutered'또는 'Spayed'가 포함되어 있으면 'O'를 반환하고 이외에서 'X'를 반환해야 합니다.

SELECT ANIMAL_ID, NAME

CASE

        WHEN

                   SEX_UPON_INTAKE LIKE 'Neutrered%'

                  OR

                   SEX_UPON_INTAKE LIKE 'Spayed%'

       THEN 'O'

        ELSE 'X'

END AS "중성화"

 

FROM ANIMAL_INS;

 

주의할 점

 

코드

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;
Comments