[프로그래머스][MySQL]4.IS NULL

Carvin·2020년 8월 3일
1

4. IS NULL

문제

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

SELECT ANIMAL_ID FROM ANIMAL_INS
	where NAME is NULL;

동물 보호소에 존재하는 동물 친구들 중 이름이 없는(NULL)이 친구의 animal_id를 구하는 문제이다. 풀이는 위와 같고 python 문법과 거의 동일할 정도로 쉽다.

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

SELECT ANIMAL_ID FROM ANIMAL_INS
	where NAME is NOT NULL;

1번 문제와 반대로 이름이 있는 친구의 animal_id를 구하는 문제이며 풀이는 위와 같다.

3) NULL 처리하기

SELECT ANIMAL_TYPE, IFNULL(NAME, 'No name'), SEX_UPON_INTAKE FROM ANIMAL_INS;
SELECT ANIMAL_TYPE, COALESCE(NAME, 'No name'), SEX_UPON_INTAKE FROM ANIMAL_INS;
SELECT ANIMAL_TYPE,
        CASE WHEN NAME IS NULL THEN 'No name'
        ELSE NAME END,
        SEX_UPON_INTAKE FROM ANIMAL_INS;

동물보호소의 친구들을 조회할 때, NAME이 NULL인 친구의 이름은 'No name'으로 치환하는 문제이다. NULL값을 처리해주는 방법으로는 3가지 방법을 활용해보았다.

  • 첫번째 방법인 IFNULL(a,b)은 a가 NULL일 경우 b로 대체한다는 함수이다.
  • 두번째 방법은 입양 시각 구하기(2)에서 다뤄본 COALESCE() 함수로, NULL값이 아닌 첫번째 인수를 반환해 주는 것으로 여기서는 NAME이 NULL일 경우 바로 그 다음 인수인 'No name'으로 대체된다.
  • 세번째 방법은 CASE문을 활용한 것으로 IF ELSE문과 굉장히 유사하며 조건을 정해 반환값을 구분할 수 있다.

0개의 댓글