반응형
[접속 사이트] 프로그래머스 programmers.co.kr
[문제] ANIMAL_INS 테이블은 동물 보호소에 들어온 동물의 정보를 담은 테이블이다.
보호소에 들어온 동물 중, 이름이 없는 채로 들어온 동물의 ID를 조회하는 SQL문을 작성하시오.
단, ID는 오름차순으로 정렬되어야 한다.
[나의 풀이]
동물의 이름이 NULL 값이 있는 데이터를 조회하기 위해서 NAME IS NULL or ' ' 조건을 넣어줍니다.
NULLIF 함수를 사용해 NULLIF(NAME, ' ') IS NULL 조건으로 사용해도 무관한 것 같아요.
[참고] NULLIF(NAME, ' ') IS NULL -> NAME 값이 ' '(공백)이면 NULL을 입력하고, 아니면 NAME의 값을 출력한다. 즉, NULLIF(A, B) IS C 이라고 볼때, A=B이면 C를 입력하고 A!=B라면 A를 출력한다. IFNULL(NAME, NULL |
SELECT ANIMAL_ID from ANIMAL_INS
WHERE NAME IS NULL or ''
-- WHERE NULLIF(NAME, '') IS NULL
-- NULLIF 조건으로 적용해도 동일한 결과 노출
Order by ANIMAL_ID ASC
[실행 결과]
만약 이름이 있는 동물들의 ID가 필요하다면 NULLIF(NAME, ' ') IS NULL의 역 조건을 넣으면 되겠죠?
SELECT ANIMAL_ID from ANIMAL_INS
WHERE NAME IS NULL or ''
-- WHERE NOT NULLIF(NAME, '') IS NULL
-- NULLIF 조건으로 적용해도 동일한 결과 노출
Order by ANIMAL_ID ASC
[이름 있는 동물 ID 쿼리 결과]
[프로그래머스 : NULL처리하기 나의 풀이]
마지막으로 빈 공백을 NULL로 치환하여 출력하기 위해서는 IFNULL을 사용합니다
[참고] IFNULL(NAME, 'No Name') -> NAME 값이 ' '(공백) 또는 NULL이면 No Name을 입력하고, 아니면 NAME의 값을 출력한다. 즉, IFNULL(A, B) 이라고 볼때, A=' ' 또는 A=NULL이면 B를 입력하고 A !=' ' 또는 A !='NULL'이면 A를 출력한다. |
SELECT ANIMAL_TYPE, IFNULL(NAME, 'No name'), SEX_UPON_INTAKE
from ANIMAL_INS
Order by ANIMAL_ID
[NULL처리하기 실행 결과]
반응형
'SEO's Study > 프로페셔널한 이야기' 카테고리의 다른 글
프로그래머스 코딩테스트 :: 있었는데요 없었습니다(MySQL) (0) | 2020.09.20 |
---|---|
프로그래머스 코딩테스트 :: 없어진 기록찾기(MySQL) (0) | 2020.09.20 |
프로그래머스 코딩테스트 :: 입양 시각 구하기2 (MySQL) (0) | 2020.09.19 |
프로그래머스 코딩테스트 :: 입양 시각 구하기1(MySQL) (0) | 2020.09.18 |
프로그래머스 코딩테스트 :: 동명 동물 수 찾기 (0) | 2020.09.18 |
댓글