본문 바로가기

데이터베이스

[ MySQL ] case 문 과 if() 함수 사용법

1. case 문 사용법

 

select 
case
	when [ 조건문 ]
	then '반환 값'
	else 'when 조건에 해당 안되는 경우 반환 값'
end
from [ 테이블명 ];

 

- 예제 1) 년도가 2000년 이후에 나온 책들은 Modern 이라고 하고, 그렇지 않은 책들은 Old 라고 새로운 컬럼을 만들어서 가져오세요.

 

select *, 
case 
	when released_year >= 2000 then 'Modern'
	else 'Old'
end as Genre
from books;

 

 

- 예제 2) stock_quantity 가 0~50 사이면, * (별표 1개), 51~100 사이면, ** (별표 2개), 그 외이면, *** (별표 3개)

 

select title, stock_quantity
case 
	when stock_quantity between 0 and 50 then '*'
	when stock_quantity between 51 and 100 then '**'
	else '***' 
end as star
from books;

 

 

2. if( ) 함수 사용법

 

select 
if( [ 조건문 ], '참일 때 값', '거짓일 때 값' )
from [ 테이블명 ];

 

- 예제 3) pages 가 300 보다 크면 long, 그렇지 않으면 short

 

select * , 
if(pages >= 300 , 'long', 'short') as length
from books;

 

 

3. ifnull() 함수 사용법 :  컬럼에 NULL 값을 다른 값으로 변경할 때

 

select 
ifnull( [ 컬럼명 ], '변경할 값' )
from [ 테이블명 ];

 

- 예제 4) age 컬럼의 데이터가 Null 일 때, 100을 넣어준다.

 

select * , 
ifnull(age, 100)
from people;