SQL Server:将多个选择结果插入单行

时间:2016-08-03 04:32:45

标签: sql-server

我正在寻找有人指出我正确的方向。甚至不确定如何问这个问题。我能用我所用的措辞找到的所有东西都在谈论将各个表格的结果结合起来。

我有一个表,我需要多个选择结果才能进入一行中的另一个表。所以我需要从几个select / as / where查询中插入一个新行作为一个结果行。

在一个真正的基本意义上,我需要这个但是10+结果到10+列行,并带有日期/时间参考。

Insert into [table2].[namealias1]
    Select [number] as namealias1 
    From [db].[table]
    Where [name] = 'name1'

表1(来源)

[NAME]   [NUMBER]

表2(目的地)

DATESTAMP  NameAlias1 NameAlias2

自从我完成任何SQL以来,已经有很长一段时间了,我正在寻找一些建议并朝着正确的方向努力。甚至只是一些暗示以最好的方式来攻击它。这是在SQL Server 2012上。

提前感谢您的帮助。

2 个答案:

答案 0 :(得分:0)

也许CTE可以帮助解决您的问题。你需要这样的东西(伪代码)

;with cte1 as
(
    select col1, col2, ... ,colN
    from table1
    where conditions_for_table1
),
cte2 as
(
    select col1, col2,... colK
    from table2
    where conditions_for_table2
),
......
......

insert into final_table( talbe columns here)
select c1.col1,c2.col3, ... cM.colK
from cte1 c1
left join /*inner join*/ cte2 c2 on c1.joining_column = c2.joinint_column and ...
.....
left join cteM cM /*inner join*/ on ...

答案 1 :(得分:0)

蛮力方法:

我为每个select语句结果声明了一个变量,并使用了insert语句中的变量。