CASE 표현식의 기본구성
SELECT CASE WHEN 조건1 THEN 출력1
WHEN 조건2 THEN 출력2
...
ELSE 그외
END
FROM 테이블명
;
예시
예시1. 대여 기간이 30일 이상이면 '장기 대여' 그렇지 않으면 '단기 대여' 로 표시하는 컬럼(컬럼명 : RENT_TYPE)을 추가하여 대여기록을 출력하는 SQL문 작성해주세요
SELECT CASE WHEN END_DATE-START_DATE>=29 THEN '장기 대여'
ELSE '단기 대여'
END AS RENT_TYPE
FROM CAR_RENTAL_COMPANY_RENTAL_HISTORY
;
SELECT CASE WHEN B.DURATION < 7 THEN ''
ELSE CASE WHEN B.DURATION < 30 THEN '7일 이상'
ELSE CASE WHEN B.DURATION < 90 THEN '30일 이상'
ELSE '90일 이상'
END END END AS DURATION_TYPE
FROM CAR_RENTAL_COMPANY_CAR A
INNER JOIN (
SELECT HISTORY_ID
, CAR_ID
, END_DATE - START_DATE + 1 AS duration
FROM CAR_RENTAL_COMPANY_RENTAL_HISTORY) B
ON A.CAR_ID = B.CAR_ID
WHERE A.CAR_TYPE = '트럭'
출처
https://m.blog.naver.com/regenesis90/222182250665
'DB > SQL' 카테고리의 다른 글
[MySQL]DATE_FORMAT : 날짜 원하는 유형으로 변경 (0) | 2024.09.05 |
---|---|
[MySQL] LIMIT와 Offset 사용법 (0) | 2024.09.05 |
[MySQL & ORLACLE] IFNULL (0) | 2024.09.05 |
두 테이블 join (0) | 2024.05.15 |
ROW_NUMBER 이용한 쿼리문(페이징처리 쿼리문) (0) | 2024.05.14 |