根据行源表从两个表中插入值

时间:2013-10-16 16:27:53

标签: sql sql-server tsql insert

为了简单起见,我有两个表A和B,每个表都有一列,它们是主键。

A包含值(1,2,3) B包含(1,2,3)

第三个表需要插入A和B,并且具有复合主键。

Table C (id, src)

如果id来自表A,我希望src为'A',如果它来自B,那么'B'。

表之间可能存在重复的ID,但它们不是同一个项,这就是我需要根据行来自哪个表来创建复合键的原因。 我试过了

Insert into C (anID, src)
Select
Case when (A.anID is not null) 
  then A.anID else B.anID end,
case when (A.anID is not null) 
  then 'A' else 'B' end
from 
A,
B 

但是我的结果总是只有3行(1, A) (2,A) (3,A)当应该有6行(每个行中有一行有B行)

1 个答案:

答案 0 :(得分:1)

insert into TableC (id, src) 
select ID, 'A' from tableA 
union 
select ID, 'B' from tableB