🔗 문제 link : https://school.programmers.co.kr/learn/courses/30/lessons/151138
🖥️ 문제 풀이
SELECT
HISTORY_ID,
CAR_ID,
DATE_FORMAT(START_DATE,'%Y-%m-%d') AS START_DATE,
DATE_FORMAT(END_DATE,'%Y-%m-%d') AS END_DATE,
CASE
WHEN DATEDIFF(END_DATE, START_DATE)+1 >= 30 THEN '장기 대여'
ELSE '단기 대여'
END AS RENT_TYPE
FROM CAR_RENTAL_COMPANY_RENTAL_HISTORY
WHERE YEAR(START_DATE) = 2022 AND MONTH(START_DATE) = 9
ORDER BY HISTORY_ID DESC;
💡문제 해결
CASE WHEN은 조건에 따라 다른 값을 반환하는 조건문
파이썬의 if-elif-else, 엑셀의 IF()와 비슷한 역할
기본 문법
CASE
WHEN 조건 THEN 결과값1
ELSE 결과값2
END
의미:
- 조건이 참(TRUE)이면 → THEN 값 반환
- 조건이 거짓(FALSE)이면 → ELSE 값 반환
- 조건 확인 종료 → END
DATEDIFF()는 두 날짜 사이의 차이를 계산하는 함수
기본 문법
DATEDIFF(날짜1, 날짜2)
시작일 포함을 위해 +1 해줌
'SQL Coding Test > [Programmers]' 카테고리의 다른 글
| [Programmers] 가격대 별 상품 개수 구하기 (Lv.2) (0) | 2026.05.21 |
|---|---|
| [Programmers] 카테고리 별 상품 개수 구하기 (Lv.2) (0) | 2026.05.21 |
| [Programmers] 특정 형질을 가지는 대장균 찾기 (Lv.1) (0) | 2026.05.20 |
| [Programmers] Python 개발자 찾기 (Lv.1) (0) | 2026.05.20 |
| [Programmers] 경기도에 위치한 식품창고 목록 출력하기 (Lv.1) (0) | 2026.05.20 |