【发布时间】:2013-10-17 00:39:11
【问题描述】:
为了简单起见,我有两个表 A 和 B,每个表都有 1 列,它们是主键。
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)
【问题讨论】:
-
select * from A,B无法为任何字段提供任何空值。
标签: sql sql-server tsql insert