호기심 많은 분석가

[MySQL] 프로그래머스 Coding_Test / IS NULL 본문

Coding/Coding Test & Algorithm

[MySQL] 프로그래머스 Coding_Test / IS NULL

DA Hun 2021. 5. 6. 20:46

포스팅 개요

 SQL 문법과 익숙해지고자 프로그래머스의 SQL Coding Test 문제들을 풀어봄. 그중 IS NULL 파트의 문제들을 기록해두었습니다. 그 전 문제들은 2021.05.06 - [Coding Test & Algorithm] - [SQL] 프로그래머스 Coding_Test / GROUP BY (2) 포스팅에서 확인할 수 있습니다.


포스팅 본문

 아래의 문제들은 모두 동일한 TABLE을 기준으로 문제가 주어졌습니다.

TABLE 설명

SELECT TABLE


1. 이름이 없는 동물의 아이디

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

이름이 없는 동물의 아이디

SELECT ANIMAL_ID FROM ANIMAL_INS
WHERE NAME IS NULL
ORDER BY ANIMAL_ID

 IS NULL 문법을 사용하여 NAME이 NULL일 때의 ANIMAL_ID를 오름차순으로 출력하였습니다.


2. 이름이 있는 동물의 아이디

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

이름이 있는 동물의 아이디

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

 위의 문제와 비슷하게 IS NOT NULL 문법을 이용하여 NAME이 NULL이 아닌 ANIMAL_ID들만 오름차순으로 출력하였습니다.


3. NULL 처리하기

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

NULL 처리하기

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

 IFNULL() 문법을 통해 NULL 값을 변경해줄 수 있었습니다. IFNULL(COLUMN 명, "대체 값")은 COLUMN이 NULL일 경우 "대체 값"으로 아닐 경우, 그대로 출력해주는 함수입니다.


 이상으로 IS NULL 파트에 대해서 공부해봤습니다. 데이터 분석에서 NULL값 처리는 상당히 중요한 부분이므로 기억해두면 좋습니다. 다음 JOIN 파트에서 다시 뵙겠습니다. :)