본문 바로가기
개발 기록/sql

[SQL] case when then - 등급 매기기

by jeong11 2023. 12. 4.
반응형
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 컬럼명

반응형