본문 바로가기
DB/문제풀이

[프로그래머스] 경기도에 위치한 식품창고 목록 출력하기 -LV.1

by 쬑께께 2022. 12. 15.

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

 

 

이번 문제를 풀기 위해선

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"를 출력시켜주는 쿼리문을 작성하면 다음과 같다.

IFNULL(필드명, 대체할 값)

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

 

 

(2) IF

다음으로는 IF문으로 풀어보겠다.

 

냉동시설 여부가 NULL일 경우

"N"을 출력해야 하고,

NULL이 아닐 경우 

FREEZER_YN필드가 가진 값이

그대로 출력되도록 해주었다.

IF(조건문, 참일 경우의 값, 거짓일 경우의 값)

 

 

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

 

 

 

(3) CASE

이제 마지막으로 CASE문으로 풀어보겠다.

 

 

IF문과 비슷하게

FREEZER_YN 필드 값이 NULL일 경우 

"N"을 출력시키고 

NULL이 아닐 경우

FREEZER_YN 필드가 가진 값이 

출력되도록 해주었다.

CASE 값 또는 조건 WHEN 값 1 THEN 결과 1 ELSE 아닐경우의 값 END

 

 

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

 

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

정답이다.