* common table 생성
필드는 comm_gropp_code varchar2(10), comm_code varchar2(10), desc varchar2(100)
create table common (
comm_group_code varchar2(10),
comm_code varchar2(10),
comm_desc varchar2(100)
);
* ho_info에 필드 floor 를 추가하고.. 각 필드에 층의 값을 update 하시오..
alter table ho_info add (floor number(2));
update ho_info h set floor = (decode(MOD(h.ho_code,22), 0, 22 , MOD(h.ho_code,22)));
* ho_info 에 direction 필드 추가 후 1동은 '남향', 2동은 '동향', 3동은 '동향" 으로 설정하고 common table 값에 향을 입력하고 코드값을 ho_info direction 필드에 업데이트 하시오..
alter table ho_info add (direction varchar2(10));
update ho_info set direction = (decode(dong_code, 1, '남향', 2, '동향', 3, '동향'));
insert into common values ('DIRECTION', 1, '동');
insert into common values ('DIRECTION', 2, '서');
insert into common values ('DIRECTION', 3, '남');
insert into common values ('DIRECTION', 4, '북');
update ho_info set direction=(
case
when direction='동향' then '1'
when direction='서향' then '2'
when direction='남향' then '3'
when direction='북향' then '4'
end
);
* 동별로 7~10 층 사이의 가격을 20% 상승시키시오.
update ho_info set price=(
case
when (7<=floor) and (11>=floor) then price+(price*0.2) else price
end
);
-> update ho_info set price= price+(price*0.2) where floor between 7 and 11;
* 향이 남향이 동의 가격을 10% 상승시키시오..
update ho_info set price=(
case
when direction = 3 then price+(price*0.1) else price
end
);
-> update ho_info set price = price*1.1 where direction = '3';
* 주소를 만들때 addr + apt_name + dong_name + ho_name 이렇게 하면 주소 update
update ho_info set name=(
case
when apt_code=1 then replace(name, substr(name, 0, 5), '')
when apt_code=2 then replace(name, substr(name, 0, 7), '')
end
);
'Study > Oracle' 카테고리의 다른 글
[oracle] 비만도 계산 create, insert, update, case when (0) | 2019.05.13 |
---|---|
[oracle] create, alter, update (0) | 2019.05.13 |
[oracle] 필드 추가 및 수정, SUM, UPDATE (0) | 2019.05.13 |
[oracle] 여러가지 데이터 삽입 방법 (0) | 2019.05.13 |
[oracle] 대용량 데이터 삽입 (0) | 2019.05.13 |