CASE WHEN์ SQL์์ ์กฐ๊ฑด์ ๋ฐ๋ผ ๊ฐ์ ๋ค๋ฅด๊ฒ ๋ฐํํ ์ ์๋ ๊ตฌ๋ฌธ์ ๋๋ค.
์ฝ๊ฒ ๋งํด, "SQL์ if๋ฌธ" ์ญํ ์ ํฉ๋๋ค.
์ฑ์ ํ์์ ์ ์์ ๋ฐ๋ผ "ํฉ๊ฒฉ" ๋๋ "๋ถํฉ๊ฒฉ"์ ๋๋๊ณ ์ถ์ ๋
60์ ์ด์์ด๋ฉด "ํฉ๊ฒฉ"
๊ทธ ๋ฏธ๋ง์ด๋ฉด "๋ถํฉ๊ฒฉ"
์ด๊ฑธ SQL๋ก ํํํ๋ ค๋ฉด
CASE WHEN์ด ๋ฑ์ ๋๋ค!
| id | name | score |
|---|---|---|
| 1 | ์ฒ ์ | 85 |
| 2 | ์ํฌ | 58 |
| 3 | ๋ฏผ์ | 70 |
| 4 | ์์ง | 45 |
SELECT name, score,
CASE
WHEN score >= 60 THEN 'ํฉ๊ฒฉ'
ELSE '๋ถํฉ๊ฒฉ'
END AS result
FROM students;
๊ฒฐ๊ณผ:
| name | score | result |
|---|---|---|
| ์ฒ ์ | 85 | ํฉ๊ฒฉ |
| ์ํฌ | 58 | ๋ถํฉ๊ฒฉ |
| ๋ฏผ์ | 70 | ํฉ๊ฒฉ |
| ์์ง | 45 | ๋ถํฉ๊ฒฉ |
SELECT name, score,
CASE
WHEN score >= 90 THEN 'A'
WHEN score >= 80 THEN 'B'
WHEN score >= 70 THEN 'C'
WHEN score >= 60 THEN 'D'
ELSE 'F'
END AS grade
FROM students;
SELECT name, department,
CASE department
WHEN 'IT' THEN 100
WHEN 'HR' THEN 50
ELSE 30
END AS bonus
FROM employees;