sql 拼接列名的问题

ddff2004 2012-11-14 02:57:20
表中有很多列,命名如下WK<NN>_SALES_FCST ,其中NN为数字,现在想写一个函数根据传入的参数返回对应列的值,请教大家帮忙给个解决办法,谢谢
CREATE FUNCTION Fun_Name(
@ItemNbr int,
@NN int
)
RETURNS int
AS
BEGIN
DECLARE @WeekSales int;
declare @sqlStr varchar(200);
select @sqlStr = 'select @WeekSales = WK'+@NN+'_SALES_FCST from Stg.SKU_WKLY_SALES_FC where MDS_FAM_ID='+@ItemNbr;
--问题出来了,这样写,在执行语句的时候会提示@WeekSales,@NN 变量未定义
exec(@sqlStr);
--如果把变量定义在上面的sql语句中,那后面返回值的时候又会提示变量未定义
RETURN @WeekSales
END
GO
...全文
296 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
ddff2004 2012-11-14
  • 打赏
  • 举报
回复
than you
开启时代 2012-11-14
  • 打赏
  • 举报
回复
exec(@sqlStr) 改成: EXECUTE sp_executesql @sqlStr,N'@WeekSales int output',@WeekSales output

22,209

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧