경기도에 위치한 식품창고 목록 출력하기의 문제는 다음과 같다.


이번 문제를 풀기 위해선
1. 창고의 ID, 이름, 주소, 냉동시설 여부를 출력
2. 경기도에 위치했을 경우 출력
3. 냉동시설 여부가 NULL일 경우 N으로 출력
4. 창고의 ID를 기준으로 오름차순 정렬
순으로 풀어야 한다.
(원래는 위의 순서대로 푸는 것이 제일 편하나
순서 3번의 방법이 여러 개이기에
가장 마지막 순서로 빼 두었다.)
우선 창고의 ID, 이름, 주소, 냉동시설 여부를
SELECT문을 통해 출력시키겠다.

다음으로 경기도에 위치했을 경우란 조건을
WHERE절을 통해 붙여준다.

다음으로 창고의 ID순으로 정렬되도록
ORDER BY 문을 이용하여 작성해보겠다.

이제 냉동시설 여부가 NULL일 경우
"N"으로 출력시키는 작업을 하겠다.
이 작업을 위한 방법으론 3가지 방법이 있는데
1. IFNULL문
2. IF문
3. CASE문
이다.
(1) IFNULL
우선 IFNULL문으로 풀어보겠다.
IFNULL( )함수는
해당 필드가 NULL일 경우
지정한 값으로 출력해주는 함수이다.
따라서 이 함수를 이용해 FREEZER_YN 필드가
NULL일 경우 "N"를 출력시켜주는 쿼리문을 작성하면 다음과 같다.

이를 본 쿼리문에 붙이면 다음과 같다.

(2) IF
다음으로는 IF문으로 풀어보겠다.
냉동시설 여부가 NULL일 경우
"N"을 출력해야 하고,
NULL이 아닐 경우
FREEZER_YN필드가 가진 값이
그대로 출력되도록 해주었다.

이제 이 IF문을 본 쿼리문에 붙여주겠다.

(3) CASE
이제 마지막으로 CASE문으로 풀어보겠다.
IF문과 비슷하게
FREEZER_YN 필드 값이 NULL일 경우
"N"을 출력시키고
NULL이 아닐 경우
FREEZER_YN 필드가 가진 값이
출력되도록 해주었다.

이를 본 쿼리문에 추가하면 다음과 같다.

위의 쿼리문들이 정답인지 확인해보겠다.

정답이다.
'DB > 문제풀이' 카테고리의 다른 글
| [프로그래머스] 조건에 맞는 회원수 구하기 -LV.1 (0) | 2022.12.19 |
|---|---|
| [프로그래머스] 나이 정보가 없는 회원 수 구하기 -LV.1 (0) | 2022.12.19 |
| [프로그래머스] 최댓값 구하기 -LV.1 (0) | 2022.12.15 |
| [프로그래머스] 상위 n개 레코드 -LV.1 (0) | 2022.12.14 |
| [프로그래머스] 여러 기준으로 정렬하기 -LV.1 (0) | 2022.12.14 |