SQL 고득점 Kit - (4) IS NULL

JunHyeok Oh·2021년 7월 12일
0

문제설명

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

NAMETYPENULLABLE
ANIMAL_IDVARCHAR(N)FALSE
ANIMAL_TYPEVARCHAR(N)FALSE
DATETIMEDATETIMEFALSE
INTAKE_CONDITIONVARCHAR(N)FALSE
NAMEVARCHAR(N)TRUE
SEX_UPON_INTAKEVARCHAR(N)FALSE



1. 이름이 없는 동물의 아이디 (LEVEL1)

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

풀이

SELECT ANIMAL_ID FROM ANIMAL_INS
WHERE NAME IS NULL
ORDER BY ANIMAL_ID
  • WHERE 조건 절에 NAME IS NULL 조건을 넣어주면, 이름 열이 결측치인 데이터를 찾아준다.



2. 이름이 있는 동물의 아이디 (LEVEL 1)

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

풀이

SELECT ANIMAL_ID FROM ANIMAL_INS
WHERE NAME IS NOT NULL
ORDER BY ANIMAL_ID
  • 1번 문제에서 NOT을 추가해 IS NOT NULL을 사용하면 결측치가 아닌 데이터를 출력할 수 있다.



3. NULL 처리하기 (LEVEL 2)

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

풀이

SELECT ANIMAL_TYPE ,
        CASE
        WHEN NAME IS NULL THEN "No name"
        ELSE NAME 
        END, SEX_UPON_INTAKE
FROM ANIMAL_INS
  • CASE WHEN ~ THEN ~ ELSE ~ END 문을 통해 상황에 따른 조건 지정을 해줄 수 있다. 이번 경우는 결측치일 경우 "No name"이 출력되도록 설정하고 나머지는 원래 값을 출력하도록 한 것이다.
  • 끝났을 때 꼭 END를 써주어야한다.
profile
Univ of Seoul , Statistics

0개의 댓글

관련 채용 정보