반응형
1. CASE 조건문
CASE 조건문을 이용하여 조건에 따른 다른 결과를 출력할 수 있다.
[기본 구문]
CASE -- CASE 조건문 시작
WHEN condition1 THEN result1 -- 조건 1일 때, result 1 반환
WHEN condition2 THEN result2 -- 조건 2일 때, result 2 반환
...
WHEN conditionN THEN resultN -- 조건 N일 때, result N 반환
ELSE default_result -- 조건에 맞지 않으면, default_result 반환
END -- CASE 조건문 끝
추가 설명: condition은 조건을 나타내는 식이며, result는 조건이 참일 경우 출력되는 값이다. else절은 위에 설정한 조건이 어떤 경우에도 만족하지 않을 때 출력될 기본값을 설정한다.
[예시]
create table student(
sNo int auto_increment primary key,
name char(10),
subject char(30),
score int
);
insert student (name, subject, score) values ( '김', '수학', 50);
insert student (name, subject, score) values ( '김', '영어', 80);
insert student (name, subject, score) values ( '이', '수학', 90);
insert student (name, subject, score) values ( '이', '영어', 70);
SELECT name, subject,
CASE
WHEN score >= 90 THEN 'A'
WHEN score >= 80 THEN 'B'
WHEN score >= 70 THEN 'C'
WHEN score >= 60 THEN 'D'
ELSE 'F' -- 위의 어느 조건에도 만족하지 않으면 F로 반환
END AS grade
FROM student;
# 결과
# name ㅣ subject ㅣ grade
# 김 수학 F
# 김 영어 B
# 이 수학 A
# 이 영어 C
SELECT name, subject,
CASE score
WHEN 90 THEN 'A'
WHEN 80 THEN 'B'
WHEN 70 THEN 'C'
WHEN 60 THEN 'D'
ELSE 'F' -- 위의 어느 조건에도 만족하지 않으면 F로 반환
END AS grade
FROM student;
# 결과
# name ㅣ subject ㅣ grade
# 김 수학 F
# 김 영어 B
# 이 수학 A
# 이 영어 C
2. IF 조건문
CASE 조건문과 유사하지만, 간단한 형태로 조건에 따른 다른 결과를 출력할 수 있다.
[기본 구문]
IF(condition, result1, result2)
추가 설명: condition은 조건을 나타내는 식이며, 참인 경우 result1이 출력되고 거짓인 경우 result2가 출력된다.
[예시]
# 기본 if절
SELECT name, subject, score,
IF(score >= 80, 'Pass', 'Fail') AS result
FROM student;
# 결과
# name ㅣ subject ㅣ score ㅣ result
# 김 수학 50 Fail
# 김 영어 80 Pass
# 이 수학 90 Fail
# 이 영어 70 Pass
# if절 중첩
# CASE 예제 if절 중첩으로 표현해보기
SELECT name, subject, score,
IF(score >= 90, 'A',
IF(score >= 80, 'B',
IF(score >= 70, 'C',
IF(score >= 60, 'D', 'F')))) AS grade
FROM student;
# 결과
# name ㅣ subject ㅣ grade
# 김 수학 F
# 김 영어 B
# 이 수학 A
# 이 영어 C
3. 조건문 특징
💡 CASE 문과 IF절 모두 WHERE 구나 ORDER BY 구에서도 사용가능!
반응형
'DB - MySQL' 카테고리의 다른 글
서브쿼리와 상관 서브 쿼리 (0) | 2023.05.24 |
---|---|
SELECT문 - NULL값 관리 (0) | 2023.05.23 |
SLECET문 - 집계함수 및 문자,숫자,날짜 관련 함수 (0) | 2023.05.23 |
SELECT문 - 정렬 (0) | 2023.05.23 |
SELECT문 - 조건활용(연산자) (0) | 2023.05.23 |