IS NULL 모음 (프로그래머스)

는는·2023년 1월 18일
0

SQL - 문제 풀이

목록 보기
11/77

경기도에 위치한 식품창고 목록 출력하기

https://school.programmers.co.kr/learn/courses/30/lessons/131114

경기도에 있는 냉동시설 여부가 NULL인 지정된 컬럼을 가져오는 문제입니다.

SELECT *
FROM food_warehouse


모두 컬럼을 조회하면 창고 id, 창고 이름, 주소,전화번호,냉동시설여부가 나오는데요. 냉동시설여부 NULL값을 'N'으로 변경 해줘야합니다. 지정된 컬럼과 함께 SELECT 부분에서 변경 해보겠습니다.

SELECT warehouse_id,warehouse_name,address,
ifnull(freezer_yn,'N') as freezer_yn

ifnull로 비워져 있는 NULL을 N으로 채워줬습니다.

이제 주소가 경기도에 위치한 컬럼을 가져오기 위해 WHERE절에서 지정해주겠습니다.

WHERE address LIKE '경기도%'

마지막으로 창고 id 기준으로 오름차순을 해주면 정답입니다.

ORDER BY warehouse_id

정답

SELECT warehouse_id,warehouse_name,address,
ifnull(freezer_yn,'N') as freezer_yn
FROM food_warehouse
WHERE address LIKE '경기도%'
ORDER BY warehouse_id

이름이 없는 동물의 아이디

https://school.programmers.co.kr/learn/courses/30/lessons/59039

이름이 없는 동물의 id를 조회하는 문제입니다.

SELECT *
FROM animal_ins

동물 아이디 컬럼만 불러오고, WHERE 절에서 is null를 이용해서 이름이 없는 동물을 조회 후 id 기준으로 정렬해주면 정답입니다.

SELECT animal_id
WHERE name is null

정답

SELECT animal_id
FROM animal_ins
WHERE name is null
ORDER BY animal_id

이름이 있는 동물의 아이디

https://school.programmers.co.kr/learn/courses/30/lessons/59407

위에 문제와 반대로 이름이 있는 동물의 아이디를 조회하는 문제 인데요

위에 나왔던 문제에서 WHERE 절에서 NOT만 추가하면 정답입니다.

WHERE NAME is NOT NUll

정답

SELECT animal_id
FROM animal_ins
WHERE NAME is NOT NUll
ORDER BY animal_id

NULL 처리하기

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

이름 없는 동물의 이름을 No name으 로 변경해주고, 지정된 컬럼을 불러오는 문제입니다.

SELECT 에서 지정된 컬럼들과, IFNULL를 이용해서 null 값에 이름을 지정해 불러옵니다.

SELECT animal_type,IFNULL(name,'No name') AS NAME,sex_upon_intake

IFNULL 말 그래도 이게, null 값이라면... 'No name'이라고 지정해준다! 라는 뜻입니다. 그 후 ORDER BY로 정렬해주면 정답입니다.

정답

SELECT animal_type,IFNULL(name,'No name') AS NAME,sex_upon_intake
FROM ANIMAL_INS
ORDER BY animal_id

나이 정보가 없는 회원 수 구하기

https://school.programmers.co.kr/learn/courses/30/lessons/131528

나이 정보가 없는 회원이 몇 명인지 구하고, 이름을 지정해주는 문제입니다.

SELECT age
FROM user_info

나이만 출력해봅니다. 눈으로 확인하기에는 잘 보이지않습니다.

이것을 age is null 로 가져옵니다.


그럼 0 아니면 1 의 값이 나옵니다. 여기서 sum으로 숫자를 세고, 컬럼명을 users 으로 지정해주면 정답입니다.

SELECT sum(age is null) AS users

정답

SELECT sum(age is null) AS users
FROM user_info

0개의 댓글

관련 채용 정보