【发布时间】:2015-05-26 21:22:46
【问题描述】:
我有 3 张桌子。我必须从其中两个表中选择几个指定的列,然后将它们插入到一个表中。但是,当我试图将它们“合并”为一个时,它不会像我预期的那样进行。
[表A]
Col_A Col_B Col_C Col_D ...
101 10 15 AAA
102 20 25 BBB
[表B]
Col_D Col_E Col_F Col_G ...
201 30 35 CCC
202 40 45 DDD
[TableC]('目标'表)
Column_01 Column_02 Column_03 ...
TableA.Col_A-Row1 TableA.Col_B-Row1 0
0 0 TableB.Col_E-Row_1 ...
TableA.Col_A-Row2 TableA.Col_B-Row2 0
0 0 TableB.Col_E-Row_2 ...
0 0 TableB.Col_E-Row_3 ...
0 0 TableB.Col_E-Row_4 ...
我需要将 TableA 和 TableB 中的一些列(不是全部)插入到 TableC 中,并且在插入 TableA 列时,必须将默认值(在本例中为 0)插入到其余列中。对于 TableB 的情况也是如此。 这些插入操作的一个巧妙之处在于,TableA 与 TableB 的记录之间存在 1toN 的关系。
现在我想通过简单的查询来实现它,如下所示:
INSERT INTO TableC (
Column_01, Column_02, Column_03 ...
)
SELECT
TableA.Col_A, Table_A.Col_B, 0 ...
FROM TableA
但我也听说我可以在 TableA 的循环中使用 Cursor 来迭代 TableB...
有没有办法解决这个问题?我已经阅读了几本 TSQL 和 SQL Server 编程书籍,但没有一本描述了这样的“对设计不良的表的查询”,只是简单的 SQL 基础知识。
我知道这不是那么复杂的问题,但我是存储过程和 TSQL 的新手,我不知道从哪里开始。
谢谢。
【问题讨论】:
标签: sql sql-server tsql