https://programmers.co.kr/learn/courses/30/lessons/59407
코딩테스트 연습 - 이름이 있는 동물의 아이디
ANIMAL_INS 테이블은 동물 보호소에 들어온 동물의 정보를 담은 테이블입니다. ANIMAL_INS 테이블 구조는 다음과 같으며, ANIMAL_ID, ANIMAL_TYPE, DATETIME, INTAKE_CONDITION, NAME, SEX_UPON_INTAKE는 각각 동물의 아이디
programmers.co.kr
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 |
[풀이]
https://developearl99.tistory.com/132
위의 문제와 다른 점은 위의 문제는 이름이 없는 동물을 조회하는 것이고 해당 문제는 이름이 있는 동물을 조회한다는 것이다. 그렇기에 WHERE절의 조건만 변경해주면 된다.
이름이 있는 동물은 NAME 컬럼 값이 NULL이 아닐 것이다. 그러므로 NAME이 NULL이 아닌 데이터를 조회하면 된다.
그렇기에 WHERE NAME IS NOT NULL 로 작성해주면 된다.
위의 문제에서도 언급했듯이 NULL은 =이 아닌 IS를 사용한다. NULL이 아닌 것을 조회하고 싶으면 IS NOT NULL을 사용하면 된다.
[코드]
SELECT ANIMAL_ID
FROM ANIMAL_INS
WHERE NAME IS NOT NULL
'SQL > 프로그래머스' 카테고리의 다른 글
[프로그래머스/SQL] NULL 처리하기(MySQL) (0) | 2021.10.30 |
---|---|
[프로그래머스/SQL] 없어진 기록 찾기(MySQL) (0) | 2021.10.30 |
[프로그래머스/SQL] 이름이 없는 동물의 아이디(MySQL) (0) | 2021.10.29 |
[프로그래머스/SQL] 입양 시각 구하기(1)(MySQL) (0) | 2021.10.28 |
[프로그래머스/SQL] 동명 동물 수 찾기(MySQL) (0) | 2021.10.28 |