【问题标题】:Insert value from two tables based on the rows source table根据行源表从两个表中插入值
【发布时间】: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


【解决方案1】:
insert into TableC (id, src) 
select ID, 'A' from tableA 
union 
select ID, 'B' from tableB 

【讨论】:

    猜你喜欢
    • 2023-04-06
    • 1970-01-01
    • 2018-02-09
    • 1970-01-01
    • 1970-01-01
    • 2021-04-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多