[프로그래머스] 중성화 여부 파악하기 - SQL / Lv.2

ByungJik_Oh·2025년 9월 29일
0

[Programmers - SQL]

목록 보기
33/39
post-thumbnail

💡 문제

ANIMAL_INS 테이블은 동물 보호소에 들어온 동물의 정보를 담은 테이블입니다. ANIMAL_INS 테이블 구조는 다음과 같으며, ANIMAL_ID, ANIMAL_TYPE, DATETIME, INTAKE_CONDITION, NAME, SEX_UPON_INTAKE는 각각 동물의 아이디, 생물 종, 보호 시작일, 보호 시작 시 상태, 이름, 성별 및 중성화 여부를 나타냅니다.

NAMETYPENULLABLE
ANIMAL_IDVARCHAR(N)FALSE
ANIMAL_TYPEVARCHAR(N)FALSE
DATETIMEDATETIMEFALSE
INTAKE_CONDITIONVARCHAR(N)FALSE
NAMEVARCHAR(N)TRUE
SEX_UPON_INTAKEVARCHAR(N)FALSE

보호소의 동물이 중성화되었는지 아닌지 파악하려 합니다. 중성화된 동물은 SEX_UPON_INTAKE 컬럼에 'Neutered' 또는 'Spayed'라는 단어가 들어있습니다. 동물의 아이디와 이름, 중성화 여부를 아이디 순으로 조회하는 SQL문을 작성해주세요. 이때 중성화가 되어있다면 'O', 아니라면 'X'라고 표시해주세요.


💭 접근

이 문제는 동물의 중성화 여부를 출력하는 문제로, CASE WHEN 절을 사용하여 해결할 수 있다.

주어진 조건으로 SEX_UPON_INTAKE 컬럼에 'Neutered' 또는 'Spayed'라는 단어가 들어있다면 중성화 컬럼에 O를, 들어있지 않다면 X를 출력하면 되므로 중성화 컬럼을 다음과 같이 작성할 수 있다.

CASE
   WHEN  SEX_UPON_INTAKE LIKE 'NEUTERED%'
     OR  SEX_UPON_INTAKE LIKE 'SPAYED%'
   THEN  'O'
   ELSE  'X'
 END AS '중성화'

📒 코드

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

💭 후기

CASE WHEN 절을 활용하는 기본적인 문제였다.


🔗 문제 출처

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


profile
精進 "정성을 기울여 노력하고 매진한다"

0개의 댓글