如何在 SQL 中的 WHERE 子句中动态调用列

How to call a column dynamically in the WHERE clause in SQL

我正在尝试找出如何调用 table 中的列,其中列名与声明变量的值相匹配。在此示例中,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)