日期:2014-05-17  浏览次数:20873 次

一个sql语句的写法问题
表1 Table1
结构SID    部件1T1    部件2T2    部件3T3
A型         1           3          5
B型         5           5          9
C型         5           7          11

表2 Table2
部件类别TID     特征值   参量 .....
1            .....    .....
3            .....    .....
5            .....    .....
7            .....    .....
9            .....    .....
11            .....    .....

当我从部件类别中删除一行数据的时候,同时需要将表1中的对应值更新为0,例如当删除表2第5行的时候。结果应当为:

A型      1        3         0
B型      0        0         9
C型      0        7         11

请问这个语句应当怎么写啊?

sql sql语句

------解决方案--------------------


create table table1
(
SID varchar2(20),
t1 number,
t2 number,
t3 number
);


create table table2
(
TID number
);

insert into table1
values('A',1,3,5);

insert into table1
values('B',5,5,9);

insert into table1
values('C',5,7,11);



select * from table1;


insert into table2
values(1);
insert into table2
values(3);
insert into table2
values(5);
insert into table2
values(7);
insert into table2
values(9);
insert into table2
values(11);

CREATE OR REPLACE TRIGGER del_on_table2 before
  DELETE ON table2 FOR EACH row DECLARE v_tid NUMBER;
  BEGIN
    v_tid:= :OLD.TID;
    UPDATE table1
    SET t1= DECODE(t1, v_tid ,0,t1),
      t2  = DECODE(t2,v_tid,0,t2),
&