sqlserver如下代码,怎么能将@Outremake作为变量而不是字符串进行查询

sql如下:现在@Outremake、@OutconstsId都可以取到,但是当@Outremake 作为字段进行查询时就会变成字符串,查询的结果@OutOriginalamount 就会变成@Outremake字段名,而不是字段值,应该怎么写。

SELECT @OutcostCenter= left(OutcostCenter,3) FROM  [TEST] WHERE id=@id;

SELECT @OutconstsId = constsId  from MConsts where constsType = '236' and constsName =  @OutCostcategory ;

SELECT @Outremake = remark  FROM DBudgetmanager where code =  @OutcostCenter ;

SELECT  @OutOriginalamount =  @Outremake from MBudgetCostcenter where feeType = @OutconstsId 

FineReport Vessel1213 发布于 2023-11-20 10:23
1min目标场景问卷 立即参与
回答问题
悬赏:8 F币 + 添加悬赏
提示:增加悬赏、完善问题、追问等操作,可使您的问题被置顶,并向所有关注者发送通知
共2回答
最佳回答
0
Vessel1213Lv3见习互助
发布于2023-11-20 13:47

SET @OutOriginalamount = N'SELECT @OutResult = ' + QUOTENAME(@Outremake) + ' FROM MBudgetCostcenter WHERE feeType = ' + @OutconstsId + ''

EXECUTE sp_executesql @OutOriginalamount, N'@OutResult decimal(18, 2) OUTPUT, @OutconstsId nvarchar(50)', @OutResult = @OutResult OUTPUT, @OutconstsId = @OutconstsId

SELECT @OutResult

最佳回答
0
CovidLv3高级互助
发布于2023-11-20 10:29(编辑于 2023-11-20 10:33)

试试

SELECT  @OutOriginalamount =  ''+CONVERT(NVARCHAR(100),@Outremake)+'' from MBudgetCostcenter where feeType = @OutconstsId 

---

image.png

  • Vessel1213 Vessel1213(提问者) 不行,返回值结果还是字段名
    2023-11-20 10:32 
  • Covid Covid 回复 Vessel1213(提问者) 你看我截图 返回的是 @Outremake的值啊
    2023-11-20 10:33 
  • 0关注人数
  • 195浏览人数
  • 最后回答于:2023-11-20 13:47
    请选择关闭问题的原因
    确定 取消
    返回顶部