다음과 같은 테이블에서,
2022년 10월 16일에 대여 중인 자동차는 '대여 중' 아닌 자동차는 '대여 가능'으로 출력해야 할 때 쿼리문을 살펴보자.

해당 쿼리의 경우 서브쿼리를 이용하여 데이터가 많아질수록 성능이 저하될 수 있다.
SELECT CAR_ID,
CASE
WHEN CAR_ID IN
(
SELECT CAR_ID
FROM CAR_RENTAL_COMPANY_RENTAL_HISTORY
WHERE START_DATE <= '2022-10-16' AND END_DATE >= '2022-10-16'
)
THEN '대여중'
ELSE '대여 가능'
END AS AVAILABILITY
FROM CAR_RENTAL_COMPANY_RENTAL_HISTORY
GROUP BY CAR_ID
ORDER BY CAR_ID DESC;
MAX를 이용하여 동일한 CAR_ID가 여러 개 있을 경우, 하나라도 1이면 대여중으로 표시하면 된다.
SELECT CAR_ID,
CASE
WHEN MAX(CASE WHEN '2022-10-16' BETWEEN START_DATE AND END_DATE THEN 1 ELSE 0 END) = 1
THEN '대여중'
ELSE '대여 가능'
END AS AVAILABILITY
FROM CAR_RENTAL_COMPANY_RENTAL_HISTORY
GROUP BY CAR_ID
ORDER BY CAR_ID DESC;