
CASE 문이란?
'CASE'문은 조건에 따라 다른 값을 반환할 수 있게 해준다.
즉 "이 조건이 참이면 어떠한 값을 반환하고 아니면 다른 값을 반환해줘"라고 데이터베이스에 지시하는 것
예를들어
'user'테이블에 있는 'rate'값이 따라 사용자에게 '골드','실버','브론즈' 등급을 매기고싶다.
SELECT id
, rate
, CASE
WHEN rate > 1500 THEN '골드'
WHEN rate > 1250 THEN '실버'
ELSE '브론즈'
END as rank
FROM user;
#CASE
#WHEN 조건1 TEHN 결과1
#WHEN 조건2 TEHN 결과2
#ELSE 결과3
#END AS CASE컬럼이름
쿼리설명
- SELECT id, rate: user 테이블에서 id와 rate 열을 가져와
- CASE: 이제 조건을 설정할거다
- WHEN rate > 1500 THEN '골드': rate가 1500보다 크면, 이 사용자는 '골드' 등급.
- WHEN rate > 1250 THEN '실버': rate가 1250보다 크고 1500 이하면, '실버' 등급.
- ELSE '브론즈': 위의 어떤 조건도 맞지 않으면, '브론즈' 등급.
- END as rank: CASE 문의 결과를 rank라는 새로운 열로 보여달라.
- FROM user: 이 모든 정보는 user 테이블에서 가져온다.
예시
id | rate | rank |
---|---|---|
1 | 1600 | 골드 |
2 | 1300 | 실버 |
3 | 1200 | 브론즈 |
4 | 1700 | 골드 |
5 | 1100 | 브론즈 |
6 | 1350 | 실버 |
7 | 1500 | 실버 |
반응형
'기타' 카테고리의 다른 글
[SQL] 서브쿼리 (스칼라, 인라인 뷰, 중첩 서브쿼리) (0) | 2024.02.25 |
---|---|
[SQL] 정규화와 반정규화 (0) | 2024.02.18 |
[SQL] INNER JOIN (0) | 2024.02.01 |
ELB - ALB,NLB (0) | 2023.09.02 |
EBS와 EFS의 차이점 (0) | 2023.09.02 |