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
'Database' 카테고리의 다른 글
[프로그래머스 SQL - JOIN] 있었는데요 없었습니다 (0) | 2021.07.16 |
---|---|
[프로그래머스 SQL - JOIN] 없어진 기록 찾기 (0) | 2021.07.14 |
[프로그래머스 SQL - IS NULL] 이름이 있는 동물의 아이디 (0) | 2021.07.12 |
[프로그래머스 SQL - IS NULL] 이름이 없는 동물의 아이디 (0) | 2021.07.12 |
[프로그래머스 SQL - GROUP BY] 입양 시각 구하기(2) (0) | 2021.07.07 |