본문 바로가기
Database

[프로그래머스 SQL - IS NULL] NULL 처리하기

by 진홍이 2021. 7. 12.
728x90

NULL 처리하기

문제

ANIMAL_OUTS 테이블은 동물 보호소에서 입양 보낸 동물의 정보를 담은 테이블입니다. 
ANIMAL_OUTS 테이블 구조는 다음과 같으며, 
ANIMAL_ID, ANIMAL_TYPE, DATETIME, NAME, SEX_UPON_OUTCOME는 각각
동물의 아이디, 생물 종, 입양일, 이름, 성별 및 중성화 여부를 나타냅니다.

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

예시

문제에서 원하는것은

  • SELECT를 사용해 ANIMAL_TYPE, NAME, SEX_UPON_INTAKE 3가지를 조회하기
  • 이름이 NULL일 경우엔 'No name'으로 표시하기
  • ANIMAL_ID순으로 조회

이렇게 3가지 입니다.

 

문제에서는 IFNULL을 사용 할 수 있는지를 물어보는것 같습니다. 

IFNULL의 형식은

IFNULL(조회할 컬럼,'대신할 문자')입니다.

조회할 컬럼의 값이 NULL일 경우 '대신할 문자'로 전환하여 조회합니다.

 

실제 문제 풀이를 보겠습니다.

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

IFNULL 안에 조회할 컬럼 NAME을 넣고 없을경우 'No name'으로 전환하도록 했습니다.

 

그후 AS 를 사용하여 컬럼이름을 NAME으로 변환 하였습니다.

문제에서 컬럼이름이 일치하지 않아도 정답이라곤 했지만

정리가 되지 않으면 불편해 숨을 못쉬는 병에 걸렸기 때문에

AS를 사용해 NAME으로 전환하였습니다.

  

IFNULL만 사용할 줄 안다면 비교적 간단한 문제였습니다.

출처:[프로그래머스 코딩테스트 연습] - https://programmers.co.kr/learn/courses/30/lessons/59410

728x90