์•Œ๊ณ ๋ฆฌ์ฆ˜๐Ÿฅš/๋ฌธ์ œํ’€์ด (MYSQL)

[Programmers] ์กฐ๊ฑด์— ๋ถ€ํ•ฉํ•˜๋Š” ์ค‘๊ณ ๊ฑฐ๋ž˜ ์ƒํƒœ ์กฐํšŒํ•˜๊ธฐ (Lv.2) 2023/7/5

๐Ÿช„ํ•˜๋ฃจ๐Ÿช„ 2023. 7. 5. 16:05
728x90
๋ฌธ์ œ ์ œ๋ชฉ ์ •๋‹ต๋ฅ  ๋‚œ์ด๋„
์กฐ๊ฑด์— ๋ถ€ํ•ฉํ•˜๋Š” ์ค‘๊ณ ๊ฑฐ๋ž˜ ์ƒํƒœ ์กฐํšŒํ•˜๊ธฐ 73% Lv.2
 

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

์ฝ”๋“œ ์ค‘์‹ฌ์˜ ๊ฐœ๋ฐœ์ž ์ฑ„์šฉ. ์Šคํƒ ๊ธฐ๋ฐ˜์˜ ํฌ์ง€์…˜ ๋งค์นญ. ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค์˜ ๊ฐœ๋ฐœ์ž ๋งž์ถคํ˜• ํ”„๋กœํ•„์„ ๋“ฑ๋กํ•˜๊ณ , ๋‚˜์™€ ๊ธฐ์ˆ  ๊ถํ•ฉ์ด ์ž˜ ๋งž๋Š” ๊ธฐ์—…๋“ค์„ ๋งค์นญ ๋ฐ›์œผ์„ธ์š”.

programmers.co.kr

 

๋ฌธ์ œ์š”์•ฝ

์กฐํšŒ

๊ฒŒ์‹œ๊ธ€ ID, ์ž‘์„ฑ์ž ID, ๊ฒŒ์‹œ๊ธ€ ์ œ๋ชฉ, ๊ฐ€๊ฒฉ, ๊ฑฐ๋ž˜์ƒํƒœ

 

์กฐ๊ฑด ์ •๋ฆฌ

  • ๊ฑฐ๋ž˜์ƒํƒœ๊ฐ€ SALE ์ด๋ฉด ํŒ๋งค ์ค‘, RESERVED์ด๋ฉด ์˜ˆ์•ฝ ์ค‘, DONE์ด๋ฉด ๊ฑฐ๋ž˜์™„๋ฃŒ ๋ถ„๋ฅ˜
  • ๊ฒŒ์‹œ๊ธ€ ID ์ˆœ์„œ๋กœ ๋‚ด๋ฆผ์ฐจ์ˆœ ์ •๋ ฌ

 

์ฝ”๋“œ

ํ’€์ด 1) case ์ปฌ๋Ÿผ๋ช… ์‚ฌ์šฉ

select BOARD_ID, WRITER_ID, TITLE, PRICE,
        case STATUS
        when 'SALE' then 'ํŒ๋งค์ค‘'
        when 'RESERVED' then '์˜ˆ์•ฝ์ค‘'
        when 'DONE' then '๊ฑฐ๋ž˜์™„๋ฃŒ'
        end as STATUS
from USED_GOODS_BOARD
where CREATED_DATE='2022-10-05'
order by BOARD_ID desc;

ํ’€์ด 2) when์— ์ปฌ๋Ÿผ ์กฐ๊ฑด์‹ ์‚ฌ์šฉ

select BOARD_ID, WRITER_ID, TITLE, PRICE,
        case
        when STATUS= 'SALE' then 'ํŒ๋งค์ค‘'
        when STATUS= 'RESERVED' then '์˜ˆ์•ฝ์ค‘'
        when STATUS= 'DONE' then '๊ฑฐ๋ž˜์™„๋ฃŒ'
        end as STATUS
from USED_GOODS_BOARD
where CREATED_DATE='2022-10-05'
order by BOARD_ID desc;
# SALE ์ด๋ฉด ํŒ๋งค์ค‘, RESERVED์ด๋ฉด ์˜ˆ์•ฝ์ค‘, DONE์ด๋ฉด ๊ฑฐ๋ž˜์™„๋ฃŒโ€‹

 

 

์กฐ๊ฑด ์—ฐ์‚ฐ(CASE, IF)

1) CASE ์กฐ๊ฑด์‹ - case ์ปฌ๋Ÿผ๋ช… ์‚ฌ์šฉ

CASE ์ปฌ๋Ÿผ๋ช…
	WHEN ์กฐ๊ฑด1	THEN ๋ถ„๋ฅ˜๊ฐ’1
	WHEN ์กฐ๊ฑด2 	THEN ๋ถ„๋ฅ˜๊ฐ’2
	ELSE ๋ถ„๋ฅ˜๊ฐ’3 (์ƒ๋žต๊ฐ€๋Šฅ)
END;

 

2) CASE ์กฐ๊ฑด์‹ - when์— ์ปฌ๋Ÿผ ์กฐ๊ฑด์‹ ์‚ฌ์šฉ

CASE
  	WHEN ์กฐ๊ฑด1	THEN ๋ถ„๋ฅ˜๊ฐ’1
    	WHEN ์กฐ๊ฑด2 	THEN ๋ถ„๋ฅ˜๊ฐ’2
    	ELSE ๋ถ„๋ฅ˜๊ฐ’3 (์ƒ๋žต๊ฐ€๋Šฅ)
END;

 

3) IF ์กฐ๊ฑด์‹

SELECT IF(์กฐ๊ฑด๋ฌธ, ์ฐธ์ผ ๋•Œ์˜ ๊ฐ’, ๊ฑฐ์ง“์ผ ๋•Œ์˜ ๊ฐ’)
728x90