从表中获取列值并将其分配给SQL Server 2008上的标量变量

时间:2014-05-23 23:58:41

标签: sql sql-server sql-server-2008

我需要从SQL Server 2008上的表中获取列值。

DECLARE @result TABLE 
(
  val FLOAT
);
insert into @result (val)
(
    select SUM(c)/10 val from atable
)

DECLARE @myval float 
SELECT @myval  = @result.val  # error : Must declare the scalar variable "@result". !!!

      if @myval = null
      begin 
  select @myval
      end  

为什么?

谢谢!

1 个答案:

答案 0 :(得分:1)

格式正确

SELECT @myval  = val FROM @result

但我觉得创建一张桌子在这里是一种矫枉过正。你可以做简单的

select @myval = SUM(c)/10 from atable

如果我没记错你。

或者,如果您简单地返回总和的结果,只需执行

select SUM(c)/10 from atable

将结果返回给调用者而不会产生任何其他干扰。