oracle/10장_데이터 조작어
pivotion insert
usop
2022. 12. 8. 15:12
pivoting insert 명령문에서는 하나의 행을 여러개의 행으로 나누어서 입력하는 기능을 제공한다.
예) 5개의 칼럼으로 구성된 요일별 판매실적 데이터를 하나의 칼럼으로 통합 할 수 있다.
이때 하나의 칼럼으로 통합된 판매 데이터의 요일을 구분하기 위해 요일 구분 칼럼을 추가다.
unconditional insert all 명령문과 동일하지만 into 절에서 하나의 테이블만 지정할 수 있다.
예제를 통해 자세히 알아보자
(5개의 칼럼으로 구성된 요일별 판매 실적 데이터를 하나의 칼럼으로 통합할때 하나의 칼럼으로 통합된 판매
데이터의 요일을 구분하기 위하여 요일 구분 칼럼을 추가하려한다)
sales 테이블과 sales_data 테이블을 우선 만든다
create table sales(
sales_no number(4),
week_no number(2),
sales_mon number(7,2),
sales_tue number(7,2),
sales_wed number(7,2),
sales_thu number(7,2),
sales_fri number(7,2));
create table sales_data (
sales_no number(4),
week_no number(2),
day_no number(2),
sales number(7,2));
sales에 데이터를 담은 후 이 데이터를 참고하여 saels_data에 값을 담아보자
insert into sales values(1101, 4, 100, 150, 80, 60, 120);
insert into sales values(1102, 5, 300, 300, 230, 120, 150);
select * from sales;
insert all
into sales_data values(sales_no, week_no, '1', sales_mon)
into sales_data values(sales_no, week_no, '2', sales_tue)
into sales_data values(sales_no, week_no, '3', sales_wed)
into sales_data values(sales_no, week_no, '4', sales_thu)
into sales_data values(sales_no, week_no, '5', sales_fri)
select sales_no, week_no, sales_mon, sales_tue, sales_wed, sales_thu, sales_fri
from sales;
select * from sales_data
order by sales_no;