怎样保存动态SQL (EXEC)的结果为变量,然后调用。

CTO CTO 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
例如下动态SQL (EXEC)语句:

DECLARE @table varchar(50) = 'table1'
DECLARE @condition varchar(500) =

DECLARE @sql varchar(3000) = '
select top 1 (PERCENTILE_DISC(0.60) WITHIN GROUP (ORDER BY [time]) OVER () ) AS [P60]
(select avg([time]) from @table) as AVG
from @table where @where
'
PRINT '2014'
SET @where = '[year]=''2014'''
SET @run = REPLACE(REPLACE(@sql, '@table', ''+@table+''), '@where', ''+@where+'')
EXEC(@run)

PRINT '2015'
SET @where = '[year]=''2015'''
SET @run = REPLACE(REPLACE(@sql, '@table', ''+@table+''), '@where', ''+@where+'')
EXEC(@run)

PRINT '2014*2+2015*3 P60'
--现在需要一个办法“保存” 2014 和 2015 年的P60的值,当所有计算(2014/2015)完毕后,总结做如下运算:2014(P60)*2 + 2015(P60)*3
这只是一个例子,问题的核心是保存动态SQL (EXEC)的结果为变量,然后调用。

...全文
评论 6
收藏 已收藏
分享
返回顶部
CTO
MS-SQL Server 34,876 成员 254,635 内容