[SQL] 프로그래머스 SQL 고득점 kit (5)

이정진·2021년 10월 3일
0

SQL

목록 보기
5/23
post-thumbnail

이름이 없는 동물의 아이디

SQL 구분 : IS NULL

문제

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

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

문제 풀이

where 조건에서 NAME is null로 이름이 없는 지를 확인할 수 있도록 작성하면 된다.

SQL

SELECT ANIMAL_ID
from ANIMAL_INS
where NAME is null

이름이 있는 동물의 아이디

SQL 구분 : IS NULL

문제

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

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

문제 풀이

where 조건에서 NAME is not null로 이름이 있는 경우만 조회할 수 있도록 작성하면 된다.

SQL

SELECT ANIMAL_ID
from ANIMAL_INS
where NAME is not null

NULL 처리하기

SQL 구분 : CASE, IS NULL

문제

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

입양 게시판에 동물 정보를 게시하려 합니다. 동물의 생물 종, 이름, 성별 및 중성화 여부를 아이디 순으로 조회하는 SQL문을 작성해주세요. 이때 프로그래밍을 모르는 사람들은 NULL이라는 기호를 모르기 때문에, 이름이 없는 동물의 이름은 "No name"으로 표시해 주세요.

문제 풀이

NULL값을 가질 경우, No name으로 표현하라고 하였기 때문에, CASE WHEN THEN 방식을 활용하여 NAME is NULL일 경우, No name을 출력하고 나머지 경우는 NAME을 그대로 출력할 수 있도록 작성하면 된다.

SQL

SELECT ANIMAL_TYPE, case
when NAME is null then 'No name'
else NAME
end as NAME, SEX_UPON_INTAKE
from ANIMAL_INS;

0개의 댓글