-
[SQL/프로그래머스] 경기도에 위치한 식품창고 목록 출력하기, CASE코딩테스트/프로그래머스 2023. 1. 17. 16:07
프로그래머스 SQL 1단계 경기도에 위치한 식품창고 목록 출력하기 오라클, 이번 문제에서는 CASE문에 대해 정리하는 시간을 가졌다.
https://school.programmers.co.kr/learn/courses/30/lessons/131114
📑 CASE문 사용 방법
문) FOOD_WAREHOUSE 테이블에서 경기도에 위치한 창고의 ID, 이름, 주소, 냉동시설 여부를 조회하는 SQL문을 작성해주세요. 이때 냉동시설 여부가 NULL인 경우, 'N'으로 출력시켜 주시고 결과는 창고 ID를 기준으로 오름차순 정렬해주세요.
문제가 다음과 같을 때 마지막 문장에 NULL인 경우 'N'으로 출력에서 CASE가 필요하다.
CASE 문법은 다음과 같은데 조건을 만족하지 않을때는 NULL값을 리턴하기 때문에 ELSE문은 생략이 가능하다. 문제에서는 NULL인 경우 'N'을 출력하고 아닌 경우 원래 컬럼 값으로 출력해주면 되는데 NULL의 값이 제대로 출력되지 않는 거 아닌가?
-- 코드를 입력하세요 SELECT WAREHOUSE_ID,WAREHOUSE_NAME,ADDRESS ,CASE FREEZER_YN WHEN 'Y' THEN 'Y' WHEN 'N' THEN 'N' ELSE 'N' END FREEZER_YN from FOOD_WAREHOUSE where ADDRESS like '%경기도%' order by WAREHOUSE_ID;
그래서 이렇게 짰더니 정답은 맞는데 뭔가 찜찜 검색해보니 WHEN FREEZER_YN IS NULL 순서로 값을 넣었어야 했다. IS NULL을 생각 못했다.
-- 코드를 입력하세요 SELECT WAREHOUSE_ID,WAREHOUSE_NAME,ADDRESS ,CASE WHEN FREEZER_YN IS NULL THEN 'N' ELSE FREEZER_YN END FREEZER_YN from FOOD_WAREHOUSE where ADDRESS like '%경기도%' order by WAREHOUSE_ID;
반응형'코딩테스트 > 프로그래머스' 카테고리의 다른 글
[SQL/프로그래머스] 헤비 유저가 소유한 장소 , 다중행 서브쿼리, 인라인뷰, 분석함수 (0) 2023.03.16 [SQL/프로그래머스] 오랜 기간 보호한 동물(1) rownum, rank() (0) 2023.03.15 [SQL/프로그래머스] 없어진 기록 찾기 (NOT IN, NOT EXISTS) (0) 2023.03.15 [SQL/프로그래머스] 조건에 맞는 회원수 구하기, 특정 날짜 조건 주기 (0) 2023.01.20 [프로그래머스/sql] 재구매가 일어난 상품과 회원 리스트 구하기 (0) 2023.01.16