개발 기록/sql
[SQL] case when then - 등급 매기기
jeong11
2023. 12. 4. 20:26
반응형
1학년 1학기 테스트 점수가 채점되어 아래 DataBase Table에 Insert 되어있습니다.
이 때 , A등급은 90점 이상 , B등급은 80점 이상 , C등급은 70점 이상 , D등급은 60점 이상
이 외 모든 점수는 F등급으로 매겨질 때, 학생의 이름과 등급을 가져오는 SQL문을 작성해주세요.
[제한사항]
- 단 , 결석 회수가 4회 이상인 학생은 무조건 F등급입니다.
- 모든 데이터는 null 값이 허용되지 않습니다.
[테이블]
name | score | absent |
a | 95 | 1 |
b | 72 | 0 |
c | 85 | 3 |
d | 90 | 4 |
e | 65 | 0 |
f | 52 | 1 |
SELECT
name
CASE
WHEN absent >= 4
THEN 'F'
ELSE
CASE
WHEN score >=90 THEN 'A'
WHEN score >=80 THEN 'B'
WHEN score >=70 THEN 'C'
WHEN score >=60 THEN 'D'
ELSE 'F'
END
END as grade
FROM 테이블;
기본 구조
CASE
WHEN 조건1
THEN 결과1
WHEN 조건2
THEN 결과2 ...
(ELSE 결과)
END AS 컬럼명
반응형