[프로그래머스] SQL 고득점 Kit - IS NULL

robin·2021년 8월 11일
0

프로그래머스 SQL

목록 보기
4/5
post-thumbnail

NULL VALUE
값이 없음을 의미함.
⚠️ 주의: 값이 0이 아님. 값이 비어 있는 것.

IS NULL, IS NOT NULL
NULL VALUE인지 확인하기 위해 IS NULL 혹은 IS NOT NULL을 사용함.
⚠️ 주의: 컬럼명 = NULL 형태로 쓰지 않음.

ANIMAL_INS 테이블

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

이름이 없는 동물의 아이디

문제

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

솔루션

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

이름이 있는 동물의 아이디

문제

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

솔루션

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

NULL 처리하기

문제

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

솔루션

SELECT ANIMAL_TYPE
     , IFNULL(NAME, 'No name') AS NAME
     , SEX_UPON_INTAKE
FROM ANIMAL_INS
ORDER BY ANIMAL_ID

IFNULL
SELECT IFNULL(expression, alt_value)
: expression의 값이 null이면 alt_value를 리턴함. null이 아니면 expression을 리턴함.

출처:

profile
데이터 분석을 공부하는 🌱

0개의 댓글