๐˜š๐˜ญ๐˜ฐ๐˜ธ ๐˜ฃ๐˜ถ๐˜ต ๐˜ด๐˜ต๐˜ฆ๐˜ข๐˜ฅ๐˜บ

[๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค/DB] SQL - CASE; ์กฐ๊ฑด์— ๋”ฐ๋ผ ๊ตฌ๋ฌธ ๋ถ„๊ธฐํ•˜๊ธฐ ๋ณธ๋ฌธ

๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค

[๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค/DB] SQL - CASE; ์กฐ๊ฑด์— ๋”ฐ๋ผ ๊ตฌ๋ฌธ ๋ถ„๊ธฐํ•˜๊ธฐ

.23 2025. 3. 27. 20:56

๊ต์ˆ˜๋‹˜ ์ €ํฌํ•œํ…Œ ์ด๋Ÿฐ๊ฑฐ ์•ˆ์•Œ๋ ค์ฃผ์…จ์—ˆ์ž–์•„์š”

 

์˜ˆ์ œ
SELECT ID, Quantity
CASE
	WHEN Quantity > 5 THEN "BRONZE"
	WHEN Quantity > 10 THEN "SILVER"
	WHEN Quantity > 50 THEN "GOLD"
	ELSE "VIP"
END AS GRADE
FROM CUSTOMER
ORDER BY ID;

 

๊ณ ๊ฐ ID, ๊ตฌ๋งค ์ˆ˜๋Ÿ‰์œผ๋กœ ๊ตฌ์„ฑ๋œ ๊ณ ๊ฐ ํ…Œ์ด๋ธ”์ด ์žˆ๋‹ค ํ•  ๋•Œ,

๊ณ ๊ฐ์˜ ๊ตฌ๋งค ์ˆ˜๋Ÿ‰ ๋ณ„ ํšŒ์› ๋“ฑ๊ธ‰์„ ๋‚˜๋ˆ ์„œ ์ถœ๋ ฅํ•œ๋‹ค๊ณ  ๊ฐ€์ •ํ•œ๋‹ค.

 

์ด ๋•Œ, 5๊ฐœ๋ฅผ ์ดˆ๊ณผํ•˜์—ฌ ๊ตฌ๋งคํ•œ ๊ฒฝ์šฐ ๋ธŒ๋ก ์ฆˆ, 10๊ฐœ ๋„˜๊ฒŒ ๊ตฌ๋งคํ•œ ๊ฒฝ์šฐ ์‹ค๋ฒ„, 50๊ฐœ ๋„˜๊ฒŒ ๊ตฌ๋งคํ•œ ๊ฒฝ์šฐ ๊ณจ๋“œ, ๊ทธ ์ด์ƒ์— ๋Œ€ํ•ด VIP๋กœ ํšŒ์› ๋“ฑ๊ธ‰์„ ์„ค์ •ํ•˜๊ณ , column ๋ช…์€ 'GRADE'๋กœ ์ถœ๋ ฅํ•ด์ค€๋‹ค.

 


CASE

๐Ÿ”— https://www.w3schools.com/MySQL/func_mysql_case.asp

๋‹ค๋ฅธ ์–ธ์–ด๋“ค์˜ switch/case๋ฌธ ์ฒ˜๋Ÿผ ์กฐ๊ฑด์„ ๋‚˜๋ˆ  ๋ฐ์ดํ„ฐ๋“ค์˜ ๊ฐ’์„ ๋ถ„๊ธฐํ•  ๋•Œ ์‚ฌ์šฉํ•œ๋‹ค.

 

์กฐ๊ฑด์„ ๊ฑธ column์— ๋Œ€ํ•ด case๋ฅผ ์ž‘์„ฑํ•˜๊ณ ,

when ๋ณ„๋กœ ์กฐ๊ฑด์„ ์ž‘์„ฑํ•œ ํ›„ then ์ดํ›„์— ํ‘œ์‹œํ•  ๊ฐ’์„ ์ ์–ด์ค€๋‹ค.

 

๋ณดํ†ต ์ƒˆ๋กœ ์ •์˜ํ•ด์ฃผ๋Š” column์ด๊ธฐ ๋•Œ๋ฌธ์— ๋ณ„์นญ์„ as๋กœ ์ •์˜ํ•ด์ฃผ๋Š” ํŽธ์ด ์ข‹๋‹ค.

์•„๋‹ˆ๋ฉด column ๋ช…์— ์ด๋ ‡๊ฒŒ ์ ์–ด์ค€ ์กฐ๊ฑด์ด ๋“ค์–ด๊ฐ„๋‹ค.

์ถฉ๊ฒฉ

 

๋‚˜๋Š” DB์ˆ˜์—…๋•Œ ์ด๋Ÿฐ๊ฑฐ ๋ฐฐ์šด์  ์—†๋Š”๋ฐ ๋ฌธ์ œํ’€๋‹ค ์ด๋Ÿฐ ๊ธฐ๋Šฅ ์žˆ๋Š”๊ฑฐ ์ฒ˜์Œ์•Œ๊ณ  ์ถฉ๊ฒฉ๋ฐ›์•„์„œ ๊ฒ€์ƒ‰ํ•˜๊ณ  ์ž‘์„ฑํ•˜๋Š” ๊ฒŒ์‹œ๊ธ€

 

์ถฉ๊ฒฉ๋ฐ›์€ ๋ฌธ์ œ ํ’€๋Ÿฌ๊ฐ€๊ธฐ

๐Ÿ”— ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค - ๋Œ€์žฅ๊ท ์˜ ํฌ๊ธฐ์— ๋”ฐ๋ผ ๋ถ„๋ฅ˜ํ•˜๊ธฐ 1

 

ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค

SW๊ฐœ๋ฐœ์ž๋ฅผ ์œ„ํ•œ ํ‰๊ฐ€, ๊ต์œก, ์ฑ„์šฉ๊นŒ์ง€ Total Solution์„ ์ œ๊ณตํ•˜๋Š” ๊ฐœ๋ฐœ์ž ์„ฑ์žฅ์„ ์œ„ํ•œ ๋ฒ ์ด์Šค์บ ํ”„

programmers.co.kr

 

์ •๋‹ต ์ฝ”๋“œ
SELECT ID,
    CASE
        WHEN SIZE_OF_COLONY <= 100 THEN 'LOW'
        WHEN SIZE_OF_COLONY <= 1000 THEN 'MEDIUM'
        ELSE 'HIGH'
    END AS SIZE
FROM ECOLI_DATA
ORDER BY ID;

 

Comments