Sql server 2008 插入临时表时出错
我有一个查询,但我得到一个错误: 查询:Sql server 2008 插入临时表时出错,sql-server-2008,Sql Server 2008,我有一个查询,但我得到一个错误: 查询: INSERT #tableN (ID,NAME,Value) SELECT 1 , 'subject', SUM(subject), 2, 'age', SUM(age), 3, 'sex', SUM(sex), 4, 'test_time', SUM(test_time) FROM taleParker 我得到以下错误: 味精203,16级,状态2,第61行 “插入表格”的名称 ID、名称、值选择1,“主题”, 苏美尔
INSERT #tableN (ID,NAME,Value)
SELECT 1 , 'subject', SUM(subject), 2, 'age', SUM(age),
3, 'sex', SUM(sex), 4, 'test_time', SUM(test_time)
FROM taleParker
我得到以下错误:
味精203,16级,状态2,第61行
“插入表格”的名称
ID、名称、值选择1,“主题”,
苏美尔,2,“年龄”,苏美尔,3,
“性”,萨姆塞克斯,4,“测试时间”,
SUMtest_time'不是有效的
标识符
您的临时表有三列,但您要插入的选择还有更多 您需要将其分解为多个插入: 更新:在SQL Server 2008中,您可以:
INSERT #tableN (ID,NAME,Value)
VALUES(1, 'subject', 1), (2, 'age', 42), (3, 'sex', 'M') .....
但是,您必须使用固定值,而不是选择表达式
更新2:如果你想使用总和。。。值,则必须首先将这些值放入变量中:
DECLARE @SumSubj INT, @SumAge INT, @SumSex INT, @SumTest INT
SELECT @SumSubj = SUM(subject), @SumAge = SUM(age),
@SumSex = SUM(sex), @SumTest = SUM(test_time)
FROM taleParker
INSERT #tableN (ID,NAME,Value)
VALUES(1, 'subject', @SumSubj), (2, 'age', @SumAge), (3, 'sex', @SumSex) .....
您的临时表有三列,但您要插入的选择还有更多 您需要将其分解为多个插入: 更新:在SQL Server 2008中,您可以:
INSERT #tableN (ID,NAME,Value)
VALUES(1, 'subject', 1), (2, 'age', 42), (3, 'sex', 'M') .....
但是,您必须使用固定值,而不是选择表达式
更新2:如果你想使用总和。。。值,则必须首先将这些值放入变量中:
DECLARE @SumSubj INT, @SumAge INT, @SumSex INT, @SumTest INT
SELECT @SumSubj = SUM(subject), @SumAge = SUM(age),
@SumSex = SUM(sex), @SumTest = SUM(test_time)
FROM taleParker
INSERT #tableN (ID,NAME,Value)
VALUES(1, 'subject', @SumSubj), (2, 'age', @SumAge), (3, 'sex', @SumSex) .....
这可以用INSERT tableN ID、NAME、Value和SELECT VALUES修复吗…@darkcminor:no。您可以有一个INSERT tableN。。。价值观….-或者你必须插入到表格中。。。选择但是你不能把两者混为一谈。@Darkc,是的,有。请看下面我的答案。还有一个问题,正如您所说的固定值,如果我对第三个字段select SUMPECURE执行select语句,是否有办法执行您所说的操作:插入表格ID、名称、值值1,‘主题’,从表格中选择SUMPECURE,2,‘年龄’,从表格中选择SUMage??或者我只是有点兴奋。这可以用INSERT tableN ID、NAME、Value选择值来修复吗…@darkcminor:no。你要么有一个INSERT tableN。。。价值观….-或者你必须插入到表格中。。。选择但是你不能把两者混为一谈。@Darkc,是的,有。请看下面我的答案。还有一个问题,正如您所说的固定值,如果我对第三个字段select SUMPECURE执行select语句,是否有办法执行您所说的操作:插入表格ID、名称、值值1,‘主题’,从表格中选择SUMPECURE,2,‘年龄’,从表格中选择SUMage??或者,如果我对1000个值这样做,结果会更好:一个包含UNION ALL,或者写了很多INSERT语句??最有可能的是包含UNION ALL的语句。但是你应该自己测试以确定。如果我对1000个值这样做,哪一个答案优于:使用UNION ALL的一个或编写大量INSERT语句的一个??最有可能的是使用UNION ALL的一个。但是你应该自己测试一下以确定。