根据条件将多个记录插入表中

时间:2012-10-08 08:23:36

标签: sql-server

我有一个名为customer的主表,其中列

MainCustID   AssocativeCustID
11           22
33           33
45           56
38           90
56           1234
356          356

现在我需要根据条件

将此值记录插入另一个表中
  • 如果MainCustIDAssocativeCustID相同,那么只有一个条目会进入另一个名为collection的表(即MainCustID条目)

  • 如果MainCustIDAssocativeCustID不同,则会有2个条目进入表中 collectionMainCustIDAssocativeCustID

我怎样才能实现这个概念?希望我的问题在这里很清楚

我知道这可以基于游标来完成吗?还有其他方法可以实现这个吗

对此的任何帮助都很棒

由于

王子

2 个答案:

答案 0 :(得分:2)

您可以将其分为三个子任务:

insert into Collection
    select MainCustID
    from Customer
    where MainCustID = AssocativeCustID;
insert into Collection
    select MainCustID
    from Customer
    where MainCustID <> AssocativeCustID;
insert into Collection
    select AssocativeCustID
    from Customer
    where MainCustID <> AssocativeCustID;
  1. 首先将所有MainCustID插入等于AssocativeCustID
  2. 的位置
  3. 然后所有MainCustID不等于AssocativeCustID
  4. 然后另一方,所有AssocativeCustID不等于MainCustID
  5. 以下是演示http://sqlfiddle.com/#!2/60026/1/0

答案 1 :(得分:0)

不使用游标,您需要运行这两个插入查询: -

insert into collection values (select MainCustId from customer where MainCustID = AssocativeCustID);

insert into collection values (select MainCustId,AssocativeCustID from customer where MainCustID <> AssocativeCustID);