SQL 문제

문제 1. 이름이 있는 동물의 아이디(난이도 3)(문자열 'NULL', ORDER BY)

kagan-draca 2024. 7. 9. 18:25

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_TYPE DATETIME INTAKE_CONDITION NAME SEX_UPON_INTAKE
CAT 2015-11-20 14:18:00 Normal NULL Spayed Female
DOG 2014-03-20 18:06:00 Sick NULL Spayed Female
DOG 2015-01-02 18:54:00 Normal Belle Intact Female
DOG 2017-06-04 08:17:00 Injured Commander Neutered Male

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

 

ANIMAL_ID
A465637
A524634

 

제출한 코드 : 

 

SELECT ANIMAL_ID FROM ANIMAL_INS
where NAME != 'NULL'
ORDER BY ANIMAL_ID ASC

 

난이도 3을 준 이유는 처음으로 SQL 문제를 풀어보는거라 NAME의 타입이 VARCHAR일 때 where 문에서 NULL로 비교를 해야하는지 'NULL'로 해야하는지 까먹었기 때문이다. 

위의 문제를 통해 다시 SQL 사용법과 VARCHAR 타입일 때 비교문에서 'NULL을 사용해야 한다는 사실을 알게 됐다.