日期:2014-05-18 浏览次数:20518 次
create table tb(ID int,F1 int,F2 int,F3 int,F4 int,F5 int,F6 int,F7 int,F8 int,F9 int,[SUM] int) insert into tb values(1 ,1 ,2 ,2 ,3 ,3 ,1 ,2 ,3 ,3 ,null) insert into tb values(2 ,2 ,2 ,2 ,3 ,3 ,1 ,2 ,3 ,3 ,null) insert into tb values(3 ,3 ,2 ,2 ,3 ,3 ,1 ,2 ,3 ,3 ,null) insert into tb values(4 ,3 ,3 ,2 ,3 ,3 ,1 ,2 ,3 ,3 ,null) insert into tb values(5 ,3 ,1 ,2 ,3 ,3 ,1 ,2 ,3 ,3 ,null) go update tb set [sum] = t.cnt from tb , ( select m.id , count(1) cnt from tb m, tb n where m.id <> n.id and (case when m.f1 = n.f1 then 1 else 0 end) + (case when m.f2 = n.f2 then 1 else 0 end) + (case when m.f3 = n.f3 then 1 else 0 end) + (case when m.f4 = n.f4 then 1 else 0 end) + (case when m.f5 = n.f5 then 1 else 0 end) + (case when m.f6 = n.f6 then 1 else 0 end) + (case when m.f7 = n.f7 then 1 else 0 end) + (case when m.f8 = n.f8 then 1 else 0 end) + (case when m.f9 = n.f9 then 1 else 0 end) = 8 group by m.id ) t where tb.id = t.id select * from tb drop table tb /* ID F1 F2 F3 F4 F5 F6 F7 F8 F9 SUM ----------- ----------- ----------- ----------- ----------- ----------- ----------- ----------- ----------- ----------- ----------- 1 1 2 2 3 3 1 2 3 3 2 2 2 2 2 3 3 1 2 3 3 2 3 3 2 2 3 3 1 2 3 3 4 4 3 3 2 3 3 1 2 3 3 2 5 3 1 2 3 3 1 2 3 3 2 (所影响的行数为 5 行) */