declare @SQL varchar(2000)
declare @Total int
SET @SQL = 'Select'+@Total+'= SUM(isnull(Points,0)) as Pointsvalue From Offer'
exec(@SQL)
select @Total
Run Code Online (Sandbox Code Playgroud)
我想这样做但总是结果显示我是空的.但是当我直接运行查询时,它会得到120的结果
我哪里错了?请告诉我
谢谢
王子
如果要将其作为动态查询运行,请尝试这样:
declare @SQL nvarchar(2000), @Total int
SET @SQL = N'Select @Total = SUM(isnull(Points,0)) as Pointsvalue From Offer'
exec sp_executesql @SQL, N'@Total int output', @Total = @Total output
select @Total
Run Code Online (Sandbox Code Playgroud)
(请参阅sp_executesql(Transact-SQL))
但是,看起来你没有真正的动态查询.
所以,正如msmucker0527所指出的,你可以简单地运行:
declare @Total int
Select @Total = SUM(isnull(Points,0)) as Pointsvalue From Offer
select @Total
Run Code Online (Sandbox Code Playgroud)