[MySQL] COALESCE로 NULL 값을 원하는 값으로 바꾸기
COALESCE 함수
- 테이블의 특정 칼럼에 있는 NULL 값을 특정한 값으로 바꾼다.
- 예시
- NAME 열의 NULL 값을 'Unknown'으로 바꾸기
- COALESCE('NAME', 'Unknown')
프로그래머스에 있는 SQL 문제 예시를 통해 사용법을 익혀보겠습니다
문제 링크
https://school.programmers.co.kr/learn/courses/30/lessons/59410
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
문제해석
먼저 테이블은 ANIMAL_INS 하나만 사용하고 있습니다. 테이블에서 조회하는 column은 생물 종, 이름, 성별 및 중성화 여부이며
조회 조건으로 '아이디 순으로 조회'가 제시되었습니다.
또한, NAME column에 NULL 값이 있으면 'No Name'으로 표시하라고 되어있습니다.
예시
출력 예시를 보면 ANIMAL_TYPE이 같을 때 ANIMAL_ID가 오름차순으로 정렬되어있는 것을 확인할 수 있습니다.
"오름차순, 내림차순" 쿼리를 처리할 때는 ORDER BY 를 사용하면 됩니다.
아래 쿼리문에서 보실 수 있듯이 ANIMAL_ID를 기준으로 오름차순으로 정렬하는 방법은 ORDER BY ANIMAL_ID ASC 쿼리를 작성해주시면 됩니다. 오름차순(ASC)이 default이므로 내림차순으로 정렬할 때는 DESC로 적어주시면 됩니다.
또한, NAME 필드의 NULL 값을 'No name'으로 표시하라는 문제의 조건은 COALESCE 함수를 사용하여 처리할 수 있습니다.
COALESCE(NAME, 'No name') 쿼리는 NAME 필드의 NULL 값을 'No name'으로 표시하라는 의미입니다.
SQL 쿼리
SELECT ANIMAL_TYPE, COALESCE(NAME, 'No name') AS NAME, SEX_UPON_INTAKE
FROM ANIMAL_INS
ORDER BY ANIMAL_ID ASC;
틀린 부분 댓글로 작성해주시면 감사하겠습니다 😊