데이터 베이스

데이터 베이스(18) case문,if문 작성법

개발연습자1 2022. 12. 8. 12:05

만약에 데이터가

 

재고가 0에서 50이면, *
 50~100이면, **
101~150이면, ***
그렇지 않으면, **** 로 별표 표시하는 컬럼 stock 이라는 컬럼을 만든다면

 

어떻게 만들수 있을까

 

이럴때는 조건문을 쓰게 되는데 크게 두가지가 있다.

 

 

1)case문

 

case문은 end문과 꼭 같이 쓰이며 코드를 보면 알겠지만 파이썬의 if문과 유사한 형태를 띄고 있다.

-- 재고가 0에서 50이면, *
--  50~100이면, **
-- 101~150이면, ***
-- 그렇지 않으면, **** 로 표시하는 컬럼 stock 이라는 컬럼을 만든다.

select * ,
-- 들여쓰기를 해준다.	
    case 
		-- 조건을 쓸때는 where가 아닌 when
        -- 조건을 만족할때 출력할값은 then을 쓰고 그 옆으로쓴다.
        when stock_quantity between 0 and 50 then '*'
        when stock_quantity between 51 and 100 then '**'
        when stock_quantity between 101 and 150 then '***'
        else '****'
	-- 끝을 맺을때는 end로
    end as stock
from books;

데이터 뒤에 stock이 추가되서 별표가 매겨져 있다.

 

 

2) if문

if문도 존재하긴하나 아이러니 하게도 파이썬에서 알던 if문 형식이 아니다. 코드를 통해 알아보자

 

-- if문
-- 책에서 작가별로 몇권 썼는지 파악하고 
-- 한권이면 book을
-- 두권이상이면 books를
-- 권수 뒤에 써준다.

-- if(ture조건,ture조건 달성시 출력,else조건,else조건 달성시 출력)

select title,author_lname, if(count(title)= 1 ,
'1 book',concat(count(title), ' books')) as COUNT
from books
group by author_lname
order by author_lname;

이렇게 권수에 맞춰 출력된다.

 

반응형