노트1/SQL

[MySQL] 프로그래머스 문제풀이 : IFNULL(), NVL(), CASE문

Paige09 2022. 2. 10. 15:12

프로그래머스 > 코딩테스트 연습 > SQL 고득점 Kit

https://programmers.co.kr/learn/challenges

https://programmers.co.kr/learn/courses/30/lessons/59410

 

코딩테스트 연습 - NULL 처리하기

ANIMAL_INS 테이블은 동물 보호소에 들어온 동물의 정보를 담은 테이블입니다. ANIMAL_INS 테이블 구조는 다음과 같으며, ANIMAL_ID, ANIMAL_TYPE, DATETIME, INTAKE_CONDITION, NAME, SEX_UPON_INTAKE는 각각 동물의 아이디

programmers.co.kr

 

 

NVL(컬럼이름, NULL일때 출력할 대체값)  - ORACLE

 

IFNULL(컬럼이름, NULL일때 출력할 대체값)  - MySQL

ex. IFNULL(이름, '이름정보 없음')

이름 컬럼의 값이 NULL이면 '이름정보 없음'이라고 출력한다.

 

 

 

 

 

Q. 동물의 생물 종, 이름, 성별 및 중성화 여부를 아이디 순으로 조회하는 SQL문 작성.

이때, 이름이 없는 동물의 이름은 "No name"

SELECT animal_type, IFNULL(name,'No 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