만약에 데이터가
재고가 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;
이렇게 권수에 맞춰 출력된다.
반응형
'데이터 베이스' 카테고리의 다른 글
데이터 베이스(20) 데이터 삭제 시 참조된 데이터 삭제하기 (0) | 2022.12.08 |
---|---|
데이터 베이스(19) 2개 테이블을 하나로 합치기 join함수 (0) | 2022.12.08 |
데이터 베이스(17) null인지 확인 할 때 is null사용 (0) | 2022.12.08 |
데이터 베이스(16) group by 에서 Having을 사용하는 방법 (0) | 2022.12.08 |
데이터 베이스(15) 날짜데이터를 저장하는 데이터타입(date,time,datetime,timestamp) (0) | 2022.12.08 |