[SQL문제풀기] 경기도에 위치한 식품 창고 목록 출력하기(ORDER BY)

241119
이나겸's avatar
Nov 19, 2024
[SQL문제풀기] 경기도에 위치한 식품 창고 목록 출력하기(ORDER BY)

Q. FOOD_WAREHOUSE 테이블에서 경기도에 위치한 창고의 ID, 이름, 주소, 냉동시설 여부를 조회하는 SQL문을 작성해주세요. 이때 냉동시설 여부가 NULL인 경우, 'N'으로 출력시켜 주시고 결과는 창고 ID를 기준으로 오름차순 정렬해주세요.

 
 

풀이

  • Like : 비교 연산자, 특정 패턴과 부분적으로 일치하는 값을 찾기 위해 사용
    • % : 와일드 카드, 이 경우 경기도로 시작하는 모든 문자열을 찾기 위해 ‘경기도%’
  • case when : 특정 조건을 검사하고, 그 조건이 참일 때와 거짓일 때 각각 다른 결과 반환
💡
CASE WHEN 구문의 기본 구조
CASE WHEN 조건1 THEN 결과1 WHEN 조건2 THEN 결과2 ... ELSE 기본값 END
when 조건 then 결과 : 조건이 참일 경우 해당 결과 반환
else 기본값 : 모든 조건이 거짓일 경우 반환할 기본값 (선택사항이고 지정하지 않으면 null 반환)
end : case 구문의 끝을 표시
 
SELECT WAREHOUSE_ID,WAREHOUSE_NAME,ADDRESS, CASE WHEN FREEZER_YN IS NULL THEN 'N' ELSE FREEZER_YN END AS FREEZER_YN FROM FOOD_WAREHOUSE WHERE ADDRESS LIKE '경기도%' ORDER BY WAREHOUSE_ID ASC;
  • coalesce(표현식1, 표현식2, …, 표현식n) : 여러 개의 인수를 왼쪽부터 차례대로 평가하여, 첫 번째로 null이 아닌 값을 반환
  • 모든 값이 null이면 null 반환
SELECT WAREHOUSE_ID, WAREHOUSE_NAME, ADDRESS, COALESCE(FREEZER_YN, 'N') AS FREEZER_YN FROM FOOD_WAREHOUSE WHERE ADDRESS LIKE '경기도%' ORDER BY WAREHOUSE_ID ASC;
 
Share article

Nakyeom's Study