728x90
16. 경기도에 위치한 식품창고 목록 출력하기
경기도에 위치한 창고의 ID, 이름, 주소, 냉동시설 여부를 조회하는 SQL문을 작성해주세요. 이때 냉동시설 여부가 NULL인 경우, 'N'으로 출력시켜 주시고 결과는 창고 ID를 기준으로 오름차순 정렬
IFNULL
select warehouse_id,
warehouse_name,
address,
ifnull(freezer_yn, 'N')
from food_warehouse
where address like '%경기도%'
order by warehouse_id
CASE WHEN
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
IF
select warehouse_id,
warehouse_name,
address,
if(freezer_yn is null, 'N', freezer_yn)
from food_warehouse
where address like '%경기도%'
order by warehouse_id
COALESCE
select warehouse_id,
warehouse_name,
address,
coalesce(freezer_yn, 'N')
from food_warehouse
where address like '%경기도%'
order by warehouse_id
★ COALESCE : IFNULL처럼 NULL값을 처리할 때 사용! 단, IFNULL은 1개 값만 바꿔주는데 반해, COALESCE는 여러 개 가능!
-- IFNULL 예시
SELECT IFNULL(NULL, '대체값'); -- 결과: '대체값'
SELECT IFNULL('값', '대체값'); -- 결과: '값'
-- COALESCE 예시
SELECT COALESCE(NULL, NULL, '첫번째 NULL이 아닌 값', '다른 값'); -- 결과: '첫번째 NULL이 아닌 값'
SELECT COALESCE('값', '대체값'); -- 결과: '값'
17. 강원도에 위치한 생산공장 목록 출력하기
FOOD_FACTORY 테이블에서 강원도에 위치한 식품공장의 공장 ID, 공장 이름, 주소를 조회하는 SQL문을 작성해주세요. 이때 결과는 공장 ID를 기준으로 오름차순 정렬
select factory_id, factory_name, address
from food_factory
where address like ('%강원도%')
order by factory_id asc
LIKE와 IN의 차이
LIKE : 문자열에서 특정 패턴(일부 무자열 포함 등)을 찾을 때 사용
IN : 여러 개의 '정확한 값' 중 하나와 일치하는지 확인할 때 사용 (정확히 일치하는 행만 찾음!!!)
-> IN으로 쓰려면, 강원도 주소를 미리 다 알고 있어야 하며 그 값들을 일일이 나열해야 함
WHERE ADDRESS LIKE '강원도%'
WHERE ADDRESS IN ('강원도 정선군 남면 칠현로 679', '강원도 원주시 문막읍 문막공단길 154')
18. DATETIME에서 DATE로 형 변환
ANIMAL_INS 테이블에 등록된 모든 레코드에 대해, 각 동물의 아이디와 이름, 들어온 날짜1를 조회하는 SQL문을 작성해주세요. 이때 결과는 아이디 순으로 조회
select animal_id,
name,
date_format(datetime, '%Y-%m-%d')
from animal_ins
order by animal_id
DATE_FORMAT의 포맷 문자 정리
728x90
'SQL > SQL 문제풀이' 카테고리의 다른 글
SQL 22-25. (2) | 2025.05.26 |
---|---|
SQL 19-21. (0) | 2025.05.23 |
SQL 13-15. (0) | 2025.05.21 |
SQL 10-12. (0) | 2025.05.20 |
SQL 7-9 (0) | 2025.05.19 |