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