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

뚜비·2023년 2월 23일
0

SQL 코딩테스트

목록 보기
6/10

문제


문제 설명

  • Table : FOOD_WAREHOUSE
  • Column
    WAREHOUSE_ID : 창고 ID
    WAREHOUSE NAME : 창고 이름
    ADDRESS : 창고 주소
    TLNO : 전화번호
    FREEZER_YN : 냉동시설 여부
  • 경기도에 위치한 창고의 ID, 이름, 주소, 냉동시설 여부를 조회, 이때 냉동시설 여부가 NULL인 경우, 'N'으로 출력시켜 주시고 결과는 창고 ID를 기준으로 오름차순 정렬해주세요.


우선 해결해야 할 요구사항은 다음과 같다.

  1. 경기도에 위치한 창고 조회 -> WHERE LIKE 사용
  2. 냉동시설 여부가 NULL이면 'N'으로 출력 -> ???
  3. 창고 ID 기준 오름차순 정렬 -> ORDER BY

그런데 문제는.. 위치가 경기도인 record 한에서 냉동시설 여부를 체크하고 값을 바꾸어야 하는데...
SELECT를 한 테이블 결과에서 UPDATE 문을 써야 하는 건가 했는데 너무 어려워짐...
그래서 서치를 해봤는데...


참고 블로그 에 따르면 SELECT statement에 CASE WHEN expression을 사용하면 되는 것이었다... (미틴!!)


-- 코드를 입력하세요
SELECT WAREHOUSE_ID,
       WAREHOUSE_NAME, 
       ADDRESS, 
       CASE WHEN FREEZER_YN IS NULL THEN 'N'
       ELSE FREEZER_YN 
       END AS FREEZER_YN // 꼭 표시해줘야 함 안그러면 CASE WHEN FREEZER_YN IS NULL THEN 'N' ELSE FREEZER_YN END라고 뜬다. 
    FROM FOOD_WAREHOUSE
    WHERE WAREHOUSE_NAME LIKE '%경기%'
ORDER BY WAREHOUSE_ID;

즉 WAREHOUSE_NAME에 '경기'가 포함되어 있는 record에 대해서 열을 선택하는데
-> 각 record의 FREEZER_YN이 null이면 'N'으로 결과가 나오고 아니면 FREEZER_YN 값으로 결과가 나온다
-> 그 때의 열 이름을 FREEZER_YN으로 지정

profile
SW Engineer 꿈나무 / 자의식이 있는 컴퓨터

0개의 댓글