코드 저장소.

[프로그래머스]LV.02 중성화 여부 파악하기 본문

코테/SQL

[프로그래머스]LV.02 중성화 여부 파악하기

slown 2023. 3. 7. 23:06

문제 설명

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

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

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

요구사항

1. 중성화된 동물을 아이디순으로 조회

2. 중성화가 되어있으면 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

중성화를 표기하기 위해서는 조건문을 걸어서 SEX_UPON_INTAKE에서 Neutered 와 SPAYED를 like문으로 '%'를 써서 검색 조건을 충족시킨 뒤에 참이면 'O' 아니면 'X'로 표기한 뒤 마지막으로 동물의 아이디순으로 조회를 하면 풀 수 있는 문제다.