Algorithm Solving/SQL

[programmers] SQL Lv. 1 - 이름이 있는 동물의 아이디

기만나🐸 2022. 9. 27. 15:12

문제

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

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


풀이

문제의 '이름이 있는 동물의 ID를 조회'에서 해당 문제는 SELECT 문이 적용되어야 한다는 것을 알 수 있다.

SELECT문의 FROM절에는 문제에서 주어진 테이블인 ANINAL_INS가 주어지면 된다.

'이름이 있는 동물의 ID를 조회' 에서 SELECT문의 WHERE절의 조건이 나타난다.

이름이 있는 동물만 조회한다는 조건은 이름이 없는(NULL인) 동물은 조회하지 않는다는 의미와 같다.

따라서 NAME IS NOT NULL을 사용하여 NAME이 NULL이 아닌 레코드들만 조회한다.

'단, ID는 오름차순 정렬되어야 합니다.'에서 ORDER BY절이 필요함을 알 수 있다.

오름차순 정렬이므로 정렬의 유형(ASC: 오름차순, DESC: 내림차순)는 생략 가능하다.

 

위 조건들에 맞게 SQL문을 작성하면 정답은 다음과 같다.

SELECT ANIMAL_ID
FROM ANIMAL_INS
WHERE NAME IS NOT NULL
ORDER BY ANIMAL_ID