MySQL - 조건문 사용하기(case, if)

반응형

  • 예시에 사용 할 'books' 테이블
  • select * from books;

 

조건문이란?

  • 주어진 조건에 만족하면 그에 따른 각각의 처리를 수행 할 수 있도록 한 것

 

조건문 Case

case
    when 조건1
    	then 코드1
    when 조건2
    	then 코드2
    else
    	코드3
end

 

예시) 재고 구분하기

  • 0~50 이면 '50개 이하',
    51개~100 이면 '51~100개',
    나머지는 '100개 이상' 으로 구분해보기
    • SQL문은 세미콜론으로 코드 실행을 구분하기 때문에 마지막에 세미콜론으로 수행해주어야 함
    • 해당 예시는 가독성을 위해 들여쓰기를 하였음
select stock_quantity,
	case
		when stock_quantity between 0 and 50 then '50개 이하'
		when stock_quantity between 51 and 100 then'51~100개'
		else '100개 이상'
	end as '재고 구분'
from books;

 

조건문 if

if (조건, 조건충족코드, 불충족코드)

 

예시) 페이지 구분하기

  • 페이지가 300이 넘어가면 'long',
    아니면 'short' 출력하기
select if (pages >= 300, 'long', 'short') from books;

 

ifnull

  • 데이터가 없을 경우 다른 값으로 대체
    • 작가의 이름(author_fname)이 없으면 Unknwon으로 대체 
select title, author_fname, ifnull( author_fname, 'Unknown') from books;

 

 

반응형