본문 바로가기

Tech/Problem Solving

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

 

프로그래머스에서 제공하는 SQL 고득점 Kit 문제 풀이 코드입니다. (정답 주의)

 

문제 링크

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

 

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

WHERE 구문에서 IS NULL이라는 키워드를 통해 NULL에 대한 조건 처리가 가능하다.

SELECT ANIMAL_ID
FROM ANIMAL_INS
WHERE NAME IS NULL

 

이름이 있는 동물의 아이디 (level 1)

WHERE 구문에서 IS NOT NULL이라는 키워드를 통해 NULL이 아닌 데이터에 대한 조건 처리가 가능하다.

SELECT ANIMAL_ID
FROM ANIMAL_INS
WHERE NAME IS NOT NULL

 

NULL 처리하기 (level 2)

방법 1. IF(조건, 참일 경우 값, 거짓일 경우 값)

방법 2. IFNULL(판별할 컬럼, null일 경우 값)

방법 3. CASE-END 사이에 WHEN-THEN절을 이용하여 조건에 대한 처리 가능. WHEN-THEN절은 여러 개가 가능하고, 어느 WHEN의 조건에도 해당하지 않을 경우에 대해서는 ELSE로 처리

# IF를 이용한 방법
SELECT ANIMAL_TYPE, IF(NAME IS NULL, 'No name', NAME) AS NAME, SEX_UPON_INTAKE
FROM ANIMAL_INS
ORDER BY ANIMAL_ID

# IFNULL을 이용한 방법
SELECT ANIMAL_TYPE, IFNULL(NAME, 'No name') AS NAME, SEX_UPON_INTAKE
FROM ANIMAL_INS
ORDER BY ANIMAL_ID

# CASE를 이용한 방법
SELECT ANIMAL_TYPE,
    CASE
        WHEN NAME IS NULL THEN 'No name'
        ELSE NAME
    END,
    SEX_UPON_INTAKE
FROM ANIMAL_INS
ORDER BY ANIMAL_ID;

 

반응형