개발 쥬스

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

알고리즘

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

DevJuice 2024. 11. 21. 16:19
반응형

🔗 문제 링크: https://school.programmers.co.kr/learn/courses/30/lessons/59409

 

프로그래머스

SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프

programmers.co.kr

 

 

🔍  해결 과정

MySQL 의 CASE WHEN 구문을 활용하여 중성화 여부를 출력하도록 코드를 구현했습니다.

중성화 여부를 확인하기 위해서는 'Neutered'의 글자와 'Spayed'의 글자 여부를 확인해야 하는데 LIKE를 활용하여 존재 여부를 파악하도록 했습니다.

 

❗️주의해야할 점은 LIKE를 여러번 활용시 항상 필드명을 같이 활용해서 써야 한다는 점입니다.

 

 

추가로 MySQL에서는 IF 내장함수도 지원을 하는데 IF의 기본 문법은 다음과 같습니다.

IF(condition, action_for_true, action_for_false)

위 구문의 뜻은 condition의 내용이 참이면 두 번째 인자 내용을 실행하고, 그렇지 않으면 마지막 인자를 실행한다는 것을 의미합니다.

 

다음은 예시 코드입니다.

SELECT IF(STRCMP("hello","Hello") = 0, "YES", "NO"); 
# YES 출력 (MySQL은 기본적으로 대소문자 구분을 하지 않는다.)

 


✏️ 코드

-- 코드를 입력하세요
-- 아이디 순으로 조회하기
-- 중성화 여부를
-- 중성화 되었으면 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
ORDER BY ANIMAL_ID;
반응형