我有这样的SQL语句:
select @constVal = FunctionWeight from dbo.FunctionWeights
where FunctionWeights.FunctionName = 'MatchZIP';
select @constVal as 'VALUE FROM LAST ZIP'
INSERT INTO #Temp2(RowNumber, ValFromFunc, FuncWeight, percentage)
SELECT RowNumber, PercentMatch, @constVal, PercentMatch * @constVal
from dbo.MatchZIP(@ZIP);
select * from #Temp2
输出:
VALUE FROM LAST ZIP
0.7
Rownumber ValFromFunc FuncWeight Percentage
81 100 1 100
82 100 1 100
83 100 1 100
84 100 1 100
问题:
@constVal
的值按预期正确检索。在#Temp2的Insert
语句中,我在#Temp2表的@constVal
列中插入FuncWeight
的值,而在FuncWeight列中插入的内容是1
,而不管@constVal
1}}变量包含,我不明白为什么会发生这种情况。
我怀疑这可能是datatype
问题。但是datatype
中的FuncWeight
列的Float(3)
因此应该能够保持正确。
#Temp2
Rownumber int not null,
ValFromFunc float(3)null,
FuncWeight float(3) null,
Percentage float(3) null
仅供参考:@MatchFromZIP(@Zip)是一个表格值函数,只返回一个包含两个字段的表格,这些字段插入Rownumber
和ValFromFunc
列。