반응형
CASE
WHEN 다음의 조건이 성립하면 THEN 다음의 식이 실행된다.
▶ 기본 문법
CASE WHEN 조건식1 THEN 식1
(WHEN 조건식2 THEN 식2)
(ELSE 식3)
END
CASE
WHEN 1 THEN '남자'
WHEN 2 THEN '여자'
END
검색케이스문
null을 활용한 조건을 실행할시 더 적합하다.
mysql> SELECT a,
-> CASE WHEN a IS NULL THEN 0
-> ELSE a
-> END AS 'a(null=0)'
-> FROM sample37;
mysql> SELECT a,
-> CASE WHEN a=1 THEN '남자'
-> WHEN a=2 THEN '여자'
-> END AS 성별
-> FROM sample37;
▶ null값이 0 일때 평균을 구하기
mysql> SELECT AVG(
-> CASE
-> WHEN quantity IS NULL THEN 0
-> ELSE quantity
-> END) 'avgnull0'
-> FROM sample51;
+----------+
| avgnull0 |
+----------+
| 3.2000 |
+----------+
▶ NULL 값을 찾아 no name으로 출력
SELECT ANIMAL_TYPE,
CASE
WHEN NAME IS NULL THEN 'No name'
ELSE NAME
END AS NAME,
SEX_UPON_INTAKE
FROM ANIMAL_INS;
단순 CASE 문
단순한 조건일 때 문장이 더 짧아지는 장점이 있다.
mysql> SELECT a,
-> CASE a
-> WHEN 1 THEN '남자'
-> WHEN 2 THEN '여자'
-> END '성별'
-> FROM sample37;
예제
▶ 샘플51 quantity열의 평균을 구하고 만약 quantity에 NULL이 있을 때는 0으로 치환후 계산. 이름은 avgnull0
mysql> SELECT AVG(
-> CASE
-> WHEN quantity IS NULL THEN 0
-> ELSE quantity
-> END) AS avgnull0
-> FROM sample51;
+----------+
| avgnull0 |
+----------+
| 3.2000 |
+----------+
반응형
'SQL' 카테고리의 다른 글
[MySQL] ALTER TABLE (0) | 2022.09.17 |
---|---|
[MySQL] EXISTS (0) | 2022.09.17 |
[MySQL] 집계함수 (1) | 2022.09.16 |
[MySQL] AS (0) | 2022.09.16 |
[MySQL] 날짜 연산 (0) | 2022.09.16 |