我想在SQL Server中的另一个表下面添加一个表。
这是我的代码:
CREATE TABLE #main_table
( Scenarios float ,Attribute VARCHAR(50) ,Value float );
insert INTO #main_table
select *
FROM
( SELECT *
FROM #table1
UNION ALL
SELECT *
FROM #table2) a
但是我得到一个错误:
所有使用UNION,INTERSECT或EXCEPT运算符组合的查询在其目标列表中必须具有相同数量的表达式
任何人都知道可能是什么问题吗?
答案 0 :(得分:3)
您可以在下面尝试-因为联合要求两个数据集中的列数均相等
insert INTO #main_table
select *
FROM
( SELECT Scenarios,Attribute ,Value
FROM #table1
UNION ALL
SELECT Scenarios,Attribute ,Value
FROM #table2) a
答案 1 :(得分:2)
返回的列
SELECT * FROM#table1
以及
返回的列SELECT * FROM#table2
必须具有相同的数字并且具有相同的类型。
答案 2 :(得分:2)
使用显式列进行联合
insert INTO #main_table (Scenarios,Attribute,Value)
select *
FROM
( SELECT col1,col2,col3
FROM #table1
UNION ALL
SELECT col1,col2,col3
FROM #table2) a
联盟遵循以下条件