问题描述
我想弄清楚如何调用表中列名与声明变量的值相匹配的列。在此示例中,Tbl_B 具有标记为 DPS_YYYYMM 的列,例如“DPS_201911”、“DPS_201910”、“DPS_201909”...。我需要找到一种方法来从 Tbl_B 中为与 @Var 匹配的给定 YYYYMM 调用正确的列。你能帮忙吗?
Campaign_ID | DPS_201911 | DPS_201910 |
---|---|---|
1 | 345 | 123 |
DECLARE @Var varchar(50)
SET @Var = '201911'
SELECT ?????
From Tbl_B
WHERE campaign_Id = 1
解决方法
像下面这样使用Dynamic sql
DECLARE @Var varchar(50),@sql varchar(max)
SET @Var = '201911'
set @Var='DPS_'+ @Var;
set @sql='SELECT '+@Var+'
From Tbl_B
WHERE campaign_Id = 1'
EXEC (@sql)