0

我有一个名为customerwhere columns的主表

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

现在我需要根据条件将此值记录插入另一个表

  • 如果MainCustIDAssocativeCustID相同,则只有 1 个条目将进入另一个名为的表collection(即MainCustID条目)

  • 如果MainCustIDandAssocativeCustID不同,则 2 个条目将进入名为collection( MainCustIDand AssocativeCustID)的表中

我怎样才能实现这个概念?

我知道这可以基于游标来完成,有没有其他方法可以实现这一点。

4

2 回答 2

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. 然后所有MainCustID不等于的地方AssocativeCustID
  3. 然后在另一边,所有AssocativeCustID不等于的地方MainCustID

这是一个演示http ://sqlfiddle.com/#!2/60026/1/0

于 2012-10-08T08:29:40.453 回答
0

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

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

insert into collection values (select MainCustId,AssocativeCustID from customer where MainCustID <> AssocativeCustID);
于 2012-10-08T08:43:42.510 回答