본문 바로가기
SQL/SQL 문제풀이

SQL 16-18.

by 쿙이콩 2025. 5. 22.
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