새소식

인기 검색어

알고리즘/SQL

[SQL] SELECT WHEN 이란?

  • -

1. SELECT WHEN 이란?

  • SQL 기본 문법 중 하나로 select 절에서 사용한다.
  • 개발자한테 좀더 와 닿게 설명하면 열을 if 문처럼 경우에 따라 조건을 설정하는 것이다.
  • 두가지의 사용 방법이 존재한다.

 

2. 실제 예시

  • 1번 과 같은경우는 쉽게 이해할수 있어서 생략

이에 대한 예시로 프로그래머스에서 내용을 참조해왔다.

다음과 같은 CAR_RENTAL_COMPANY_RENTAL_HISTORY 테이블이 있을경우

HISTORY_ID
CAR_ID
START_DATE
END_DATE
1
4
2022-09-27
2022-11-27
2
3
2022-10-03
2022-11-04
3
2
2022-09-05
2022-09-05
4
1
2022-09-01
2022-09-30
5
3
2022-09-16
2022-10-15

 

  • START_DATEEND_DATE 의 차이가 30일 이상인 경우 RENT_TYPE 라는 속성을 만들어 장기 대여 라고 한고 작을경우는 단기 대여라고 하고 싶다.
HISTORY_ID
CAR_ID
START_DATE
END_DATE
RENT_TYPE
5
3
2022-09-16
2022-10-13
단기 대여
4
1
2022-09-01
2022-09-30
장기 대여
3
2
2022-09-05
2022-09-05
단기 대여
1
4
2022-09-27
2022-10-26
장기 대여
Copy
SELECT HISTORY_ID, CAR_ID, 
    DATE_FORMAT (START_DATE,'%Y-%m-%d') AS CAR_ID, 
    DATE_FORMAT(END_DATE,'%Y-%m-%d') AS END_DATE, 
CASE WHEN DATEDIFF(END_DATE, START_DATE) < 29 
    then '단기 대여' 
    ELSE '장기 대여' 
    END AS  RENT_TYPE
FROM CAR_RENTAL_COMPANY_RENTAL_HISTORY

 

  • 고려해볼수있는 예시들
    • 연령 층 (10대, 20대, 30대)
    • 갯수의 범위 (100단위, 200 단위, 300 단위)
    • 점수에다른 성적및 등급 (A, B, C)
    • 해당 년도 가입자수 (2020년도 가입자 수 ,2021년도 가입자수, 2022년도 가입자수 )
    • 등등
    • 상황에따라 무궁무진 하게 사용할수있다.
Contents

포스팅 주소를 복사했습니다

이 글이 도움이 되었다면 공감 부탁드립니다.