05. 조건문 CASE, 테이블 피봇
엑셀에서의 IF와 비슷한 문법. 실습링크
>SELECT CASE
>SELECT WHEN categoryid = 1 THEN '음료'
>SELECT WHEN categoryid = 2 THEN '조미료'
>SELECT ELSE '기타'
>SELECT END AS 'categoryname', *
FROM Products
>> Products 테이블에서, Categoryid가 1이면 '음료', 2이면 '조미료', 그 외면 '기타'로 표기하고
해당 column명은 categoryname으로 지정해서 나타내라.
*CASE 내에 비교연산자(=,<>,>,<,..) 및 논리연산자(AND,OR,..)를 넣어 표현할 수 있다.
>SELECT CASE
>SELECT WHEN categoryid = 1 AND SupplierID = 1 THEN '음료'
>SELECT WHEN categoryid = 2 THEN '조미료'
>SELECT ELSE '기타'
>SELECT END AS 'categoryname', *
FROM Products
*case를 이용해서 새 column을 만들고, 그 column을 기준으로 group by가 가능하다.
>SELECT CASE
>SELECT WHEN categoryid = 1 THEN '음료'
>SELECT WHEN categoryid = 2 THEN '소스'
>SELECT ELSE '이외'
>SELECT END AS new_category
>SELECT , AVG(Price)
FROM Products
GROUP BY new_category
* WHEN절은 위에 있는 절부터 차례로 정의되어 데이터가 빠져 나간다.
>>해당 데이터는 이후 WHEN절(필터)에 적용되지 않는다. (.'.) WHEN절의 순서가 중요하다.
* CASE문에서 ELSE NULL을 활용하면 데이터 피봇팅이 가능하다.
참고 링크 : mode.com/sql-tutorial/sql-pivot-table/
'기초 > SQL' 카테고리의 다른 글
06. 테이블 결합하기(↔️) / JOIN, DATE_ADD (0) | 2020.12.30 |
---|---|
04. 보고 싶은 데이터 요약하기 / 집계함수, GROUP BY (0) | 2020.12.29 |
03. ORDER BY, 문자열 자르기 + 주석 처리 (0) | 2020.12.20 |