Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- greedy
- string
- bit manipulation
- simulation
- hash table
- sorting
- implement
- database
- 자바
- 구현
- Data Structure
- Math
- Method
- Counting
- SQL
- Number Theory
- array
- 코딩테스트
- 파이썬
- dynamic programming
- Stack
- Tree
- Matrix
- Class
- java
- 코테
- Binary Search
- Binary Tree
- two pointers
- geometry
Archives
- Today
- Total
코린이의 소소한 공부노트
[MySQL] CASE WHEN, THEN, ELSE 본문
[예시에 쓰이는 테이블]
# 2학년 학생들의 한 달 독서량 실태를 보고
# 독서량에 따른 별명을 붙여주려고 한다.
select hakbeon, case when book<2 then '독서 유망주' # book<2
when book<6 then '독서 프로' # 2<=book<6
else '독서광' end # book>=6
from student_monthly where hakbeon>20000 and hakbeon<30000;
# 결과
hakbeon case when book<2 then '독서 유망주' when book<6 then '독서 프로' else '독서광' end
20101 독서 프로
20102 독서광
20103 독서 유망주
...
# 칼럼명이 영 맘에 걸린다.
# '당신은 누구?'로 바꿔보자
select hakbeon, book, case when book<2 then '독서 유망주'
when book<6 then '독서 프로'
else '독서광' end as '당신은 누구?'
from student_monthly where hakbeon>20000 and hakbeon<30000;
# 결과
hakbeon 당신은 누구?
20101 독서 프로
20102 독서광
20103 독서 유망주
...
[CASE WHEN, THEN, ELSE]
1. select절에 case when 조건1 then 결과1 when 조건2 then 결과2 ... else 나머지의결과 end 형태로 쓰인다.
- 구간별로 구분지어 표시할 때 사용한다.
- 구간이 여러개일 경우 when으로 구간을 나누면 된다.
- n번째 조건은 n-1번째 조건을 만족하지 않는다는 것이 포함되어 있다.
2. case를 사용하면 결과에 칼럼이 추가된다.
- 칼럼명은 case when ~ 으로 표시된다.
- 칼럼명을 다른걸로 쓰고 싶다면 end 뒤에 as 별명을 쓰면 된다.
- 이때 생긴 칼럼은 가상의 칼럼으로, 실제 테이블에는 영향을 주지 않는다.
'Back-End' 카테고리의 다른 글
[MySQL] SUB QUERY (0) | 2023.04.04 |
---|---|
[MySQL] LIKE, NOT LIKE (0) | 2023.03.31 |
[MySQL] INSERT, UPDATE, DELETE (0) | 2023.03.29 |
[MySQL] COUNT, GROUP BY, HAVING (0) | 2023.03.28 |
[MySQL] ORDER BY, LIMIT (0) | 2023.03.18 |