문제 설명
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
'Code KATA > SQL 코드카타' 카테고리의 다른 글
[2024.12.07] 동명 동물 수 찾기 (0) | 2024.12.09 |
---|---|
[2024.12.06] 동물 수 구하기 (0) | 2024.12.06 |
[2024.12.05] 동물의 아이디와 이름 (1) | 2024.12.05 |
[2024.12.04] 중복 제거하기 (0) | 2024.12.05 |
[2024.12.03] 역순 정렬하기 (0) | 2024.12.03 |