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
- Matplotlib
- Join
- javascript
- 알고리즘
- 가상환경
- programmers
- 백준
- dataframe
- 파이썬
- openCV
- 정보처리기사 c언어
- MySQL
- NumPy
- 코딩테스트
- 알고리즘 스터디
- type hint
- python
- 프로그래머스
- Stack
- pandas
- String Method
- aws jupyter notebook
- Selenium
- 자료구조
- 노마드코딩
- 알고리즘스터디
- queue
- 데이터시각화
- 선그래프
- Algorithm
Archives
- Today
- Total
조금씩 꾸준히 완성을 향해
[MySQL] 조건문과 NULL ( IF, CASE, COALESCE, IFNULL) 본문
▶ IF (조건, T, F)
: 조건이 참이라면 T, 거짓이면 F 반환
mysql> SELECT IF (1 > 2, '1는 2보다 크다.', '1은 2보다 작다.') AS '1 > 2',
-> IF (10 > 2, '10은 2보다 크다.', '10은 2보다 작다.') AS '10 > 2';
+-----------------+------------------+
| 1 > 2 | 10 > 2 |
+-----------------+------------------+
| 1은 2보다 작다. | 10은 2보다 크다. |
+-----------------+------------------+
▶ CASE WHEN .... THEN ....
SELECT CASE WHEN 조건식1 THEN 결과값1
WHEN 조건식2 THEN 결과값2
ELSE 결과값3
END
FROM 테이블이름
mysql> SELECT a,
-> CASE
-> WHEN a = 1 THEN '남자'
-> WHEN a = 2 THEN '여자'
-> WHEN a IS NULL THEN '데이터 누락'
-> END '성별'
-> FROM sample37;
+------+-------------+
| a | 성별 |
+------+-------------+
| 1 | 남자 |
| 2 | 여자 |
| NULL | 데이터 누락 |
+------+-------------+
▶ COALESCE
: 지정한 표현식들 중에 NULL이 아닌 값을 만나면 그 값을 반환하는 함수
(처음으로 만나는 NULL이 아닌 값을 출력, 표현식이 모두 NULL일 경우엔 결과도 NULL 반환)
// NULL 처리 상황
SELECT COALESCE(Column명1, Column명1이 NULL인 경우 대체할 값)
FROM 테이블명
// 배타적 OR 관계 열
// Column1 ~ 4 중 NULL이 아닌 첫 번째 Column을 출력
SELECT COALESCE(Column명1, Column명2, Column명3, Column명4)
FROM 테이블명
mysql> SELECT a, COALESCE(a, 0) FROM sample37;
+------+----------------+
| a | COALESCE(a, 0) |
+------+----------------+
| 1 | 1 |
| 2 | 2 |
| NULL | 0 |
+------+----------------+
▶ IFNULL
해당 Column의 값이 NULL을 반환할 때, 다른 값으로 출력할 수 있도록 하는 함수
SELECT IFNULL(Column명, "Null일 경우 대체 값")
FROM 테이블명;
mysql> SELECT IFNULL(a, "no data")
-> FROM sample37;
+----------------------+
| IFNULL(a, "no data") |
+----------------------+
| 1 |
| 2 |
| no data |
+----------------------+
※ IF + IS NULL 로도 쓸 수 있다.
mysql> SELECT IF (ISNULL(a), "no data", a)
-> FROM sample37;
+------------------------------+
| IF (ISNULL(a), "no data", a) |
+------------------------------+
| 1 |
| 2 |
| no data |
+------------------------------+
'Database > MySQL' 카테고리의 다른 글
[MySQL] JOIN 테이블 결합하기(INEER, OUTER, CROSS, SELF) (0) | 2022.09.21 |
---|---|
[MySQL] VIEW (0) | 2022.09.21 |
[MySQL] 문자 관련 함수 정리 (0) | 2022.09.19 |
[MySQL] 숫자 관련 함수 정리 (0) | 2022.09.18 |
[MySQL] subquery 서브쿼리 기본 사용예제 (0) | 2022.09.18 |