You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何基于其他表动态声明SQL变量并实现存储过程条件评分?

SQL动态变量配置问题

一、技术疑问

  • 能否基于其他表声明SQL变量?
  • 能否基于条件值设置变量?

二、需求说明

希望在SQL存储过程中,无需硬编码公司代码值,让变量@L0根据CompanyCode动态匹配[Database1].[DQ].[RFRuleConfig]表中对应的TRF值(例如CompanyCode为1857时TRF为8,1848时为16),并多次调用该变量为数据行分配对应Score。

三、尝试的代码

declare @L0 int 
declare @L1 int =-1
declare @StartDate datetime
declare @EndDate datetime
set @L0 = (Select TRF from [Database1].[DQ].[RFRuleConfig] R 
    JOIN [Database2].[Dim].[Company] C on C.[CompanyCode] = R.[CompanyCode] 
    WHERE C.CompanyCode IN ('1857','1848'))
set @StartDate = dateadd(month, datediff(month, 0, getdate()) - 1, 0)  
set @EndDate = dateadd(month, datediff(month, 0, getdate()) + 0, -1) 

四、表数据样例

[Database1].[DQ].[RFRuleConfig]表数据如下:

CompanyCodeTRF
18578
184816
16177

五、补充说明

可以用硬编码IF语句实现需求,但这不是最优方案。最终需要在如下查询中使用动态的@L0分配Score:

select Recordidinv,CompanyCode,BookCountryID, 'RF1' as Error, @L1 as Score from [Table]

内容的提问来源于stack exchange,提问作者courty340

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.04 12:03:24