๐ŸŽฏ CASE WHEN์ด๋ž€?

CASE WHEN์€ SQL์—์„œ ์กฐ๊ฑด์— ๋”ฐ๋ผ ๊ฐ’์„ ๋‹ค๋ฅด๊ฒŒ ๋ฐ˜ํ™˜ํ•  ์ˆ˜ ์žˆ๋Š” ๊ตฌ๋ฌธ์ž…๋‹ˆ๋‹ค.

์‰ฝ๊ฒŒ ๋งํ•ด, "SQL์˜ if๋ฌธ" ์—ญํ• ์„ ํ•ฉ๋‹ˆ๋‹ค.


๐Ÿง  ์‹ค์ƒํ™œ ๋น„์œ 

์„ฑ์ ํ‘œ์—์„œ ์ ์ˆ˜์— ๋”ฐ๋ผ "ํ•ฉ๊ฒฉ" ๋˜๋Š” "๋ถˆํ•ฉ๊ฒฉ"์„ ๋‚˜๋ˆ„๊ณ  ์‹ถ์„ ๋•Œ


๐Ÿงช ์˜ˆ์ œ ํ…Œ์ด๋ธ”: students

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;