본문 바로가기
SQL/MySQL

프로그래머스 LV1. 중성화 여부 파악하기, 다양한 코드 구현 방법

by 취준생 져니 2025. 4. 7.

🔗 문제 링크

프로그래머스 LV1 : 중성화 여부 파악하기

 

🔍 문제 요약

  • 중성화 여부 확인하기
  • SEX_UPON_INTAKE 컬럼에 Neutered 또는 Spayed 라는 단어가 들어있으면 중성화 ㅇ
  • 중성화가 되어있으면 O, 아니라면 X 출력
  • 동물의 아이디, 이름, 중성화 여부를 출력

원래 코드를 CASE WHEN 절을 사용해서 약 4줄에 거쳐 코드를 작성하였다.

SELECT ANIMAL_ID, NAME, 
    CASE 
        WHEN (SEX_UPON_INTAKE LIKE '%Neutered%') THEN 'O'
        WHEN (SEX_UPON_INTAKE LIKE '%Spayed%') THEN 'O'
        ELSE 'X'
    END AS 중성화
FROM ANIMAL_INS
ORDER BY ANIMAL_ID

 

 

이것보다 더 가독성 좋은 방법으로

 

  1. IF 절 사용하기
    IF 절을 사용해서 Neutered 또는 Spayed가 포함되면 O, 아니면 X 출력
SELECT ANIMAL_ID, NAME, 
    IF (SEX_UPON_INTAKE LIKE '%Neutered%' OR SEX_UPON_INTAKE LIKE '%Spayed%', 'O', 'X') AS 중성화
FROM ANIMAL_INS
ORDER BY ANIMAL_ID




  1. REGEXP 활용
    REGEXP를 활용해서 한 줄로 간단하게 코드 작성이 가능함
    SELECT ANIMAL_ID, NAME, 
     IF (SEX_UPON_INTAKE REGEXP 'Neutered|Spayed', 'O', 'X') AS 중성화
    FROM ANIMAL_INS
    ORDER BY ANIMAL_ID