Code KATA/SQL 코드카타

[2024.12.02] 이름이 있는 동물의 아이디

iiblueblue 2024. 12. 3. 15:02

문제 설명

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

동물 보호소에 들어온 동물 중, 이름이 있는 동물의 ID를 조회하는 SQL문을 작성해주세요. 단, ID는 오름차순 정렬되어야 합니다.

 

예시

예를 들어 ANIMAL_INS 테이블이 다음과 같다면

ANIMAL_ID ANIMAL_TYPE DATETIME INTAKE_CONDITION NAME SEX_UPON_INTAKE
A434523 Cat 2015-11-20 14:18:00 Normal NULL Spayed Female
A562649 Dog 2014-03-20 18:06:00 Sick NULL Spayed Female
A524634 Dog 2015-01-02 18:54:00 Normal *Belle Intact Female
A465637 Dog 2017-06-04 08:17:00 Injured *Commander Neutered Male

이름이 있는 동물의 ID는 A524634와 A465637입니다. 따라서 SQL을 실행하면 다음과 같이 출력되어야 합니다.

ANIMAL_ID
A465637
A524634

 

 

문제 풀이

풀이 언어 : MySQL

-- 코드를 입력하세요
SELECT ANIMAL_ID
FROM ANIMAL_INS
WHERE NAME IS NOT NULL;

이름이 없는 동물은 NAME을 NULL로 표시하였기 때문에 이름이 있는 동물의 ID를 출력하기 위해선 NAME의 값이 NULL이 아닌 것만 가져오면 된다. 따라서 WHERE절에 NAME이 NULL이 아닌 것을 뜻하는 IS NOT NULL을 사용한다.

 

참고사항

NULL만 가져오기 또는 NULL이 아닌 것만 가져오기를 할 때엔 IS NULL, IS NOT NULL만이 제대로된 작동을 한다. 혹 =NULL, =!NULL을 사용한다면 오류는 발생하지 않지만 데이터는 1건도 검색되지 않는다.

https://www.notion.so/WHERE-cdc56175c3cb47bfa7d4b8b14e18c9b1?pvs=4

 

문제 링크

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