我需要创建一个新变量(AGE的平均值),我希望从另一个名为source_table
的表中获取该变量。
我写了以下几行但得到了一个错误:
DECLARE @mean_AGE decimal;
set @mean_AGE = select AVG( AGE ) from source_table;
错误详情:
第15行,第15行,第1行,第33行 关键字“select”附近的语法不正确。
我该如何解决这个问题?
更新: 我根据下面的答案使用了这段代码,但仍然是错误。
DECLARE @mean_AGE decimal;
select @mean_AGE = AVG(AGE) from source_table;
--DELETE temp_table
SELECT TOP 1000
[AGE]=iif(AGE='NA',@mean_AGE,AGE)
INTO temp_table
FROM [source_table]
But got this error:
Must declare the scalar variable "@mean_AGE".
答案 0 :(得分:0)
将查询更改为:
select @mean_AGE = AVG(AGE) from source_table;
<小时/> 的更新强>
删除那些分号
DECLARE @mean_AGE decimal
select @mean_AGE = AVG(AGE) from source_table
;
表示批处理脚本的结束,因此之后的语句实际上是新的批处理脚本。
其次,
这个不起作用,因为iif true和false条件中的数据类型必须匹配。
SELECT TOP 1000
[AGE]=iif(AGE='NA',@mean_AGE,AGE)
INTO temp_table
FROM [source_table]
更改为:
SELECT TOP 1000
[AGE]=iif(AGE=0,@mean_AGE,AGE)
INTO temp_table
FROM [source_table]
答案 1 :(得分:0)
请尝试使用此选项。 set @mean_AGE = (select AVG( AGE ) from source_table)