특정조건을 만족할때의 출력을 넣을수있다,
catgegory | name |
---|---|
1 | 코카콜라 |
2 | 초콜릿 |
1 | 환타 |
2 | 홈런볼 |
이런 데이터베이스가 있을 때
category가 1일때는 음료, 2일때는 과자라고 지정하고싶다면 case whenb을 사용하면된다.
select case
when category = 1 then '음료'
when category = 2 then '과자'
else '기타' //위의 조건을 충족하지 않을때
end as 종류 , * //end로 조건문이 끝난것을 알려야하고 as로 별칭을 붙여준다.
from tbl
이렇게 작성했다면
종류 | catgegory | name |
---|---|---|
음료 | 1 | 코카콜라 |
과자 | 2 | 초콜릿 |
음료 | 1 | 환타 |
과자 | 2 | 홈런볼 |
라는 내가 원하는 결과를 얻을수 있게된다.
select case
when category = 1 and ohterColumn = 'value' then '음료'
//이런식으로 2가지의 조건을 and로 엮어주면 여러가지 조건이 참일때의 결과를 얻을수있다.
when category = 2 then '과자'
else '기타'
end as 종류 , *
from tbl
select case
when category = 1 then '음료'
when category = 2 then '과자'
else '기타'
end as 종류 , count(*)
from tbl
group by 종류
종류 | count(*) |
---|---|
음료 | 2 |
과자 | 2 |
내가 case로 만든 새로운 컬럼인 종류를 그룹으로 묶어 count를 하게된다면 이런형식으로 case문을 그룹으로 지정할수있다.
하지만 case문은 길기때문에 as로 정해진 새로운 이름을 group by
에 적어준다.
본 내용은 데이터리안 'SQL 데이터 분석 캠프 입문반' 을 수강하며 작성한 내용입니다.