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

SQL如何根据变量值动态查询表中名称匹配的对应列

方案1:使用动态SQL实现(推荐)

这种方式可以灵活匹配任意符合格式的列,不需要提前枚举所有可能的月份列:

DECLARE @Var varchar(50)
SET @Var = '201911'
-- 拼接动态查询语句
DECLARE @SQL nvarchar(max)
SET @SQL = N'SELECT DPS_' + @Var + N' AS TargetDPS FROM Tbl_B WHERE Campaign_ID = 1'
-- 执行动态语句
EXEC sp_executesql @SQL

注意:如果@Var的取值来自用户输入,需要先做格式校验,确认输入为6位数字格式,避免SQL注入风险


方案2:使用CASE WHEN静态实现(适合列数固定且较少的场景)

如果你的DPS_月份列数量有限且固定,可以不用动态SQL,直接枚举所有列做匹配:

DECLARE @Var varchar(50)
SET @Var = '201911'

SELECT CASE @Var
    WHEN '201911' THEN DPS_201911
    WHEN '201910' THEN DPS_201910
    -- 其余月份列按相同格式补充即可
    END AS TargetDPS
From Tbl_B
WHERE campaign_Id = 1 

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.14 12:06:08