如何在 SQL 的 WHERE 子句中动态调用列
Posted
技术标签:
【中文标题】如何在 SQL 的 WHERE 子句中动态调用列【英文标题】:How to call a column dynamically in the WHERE clause in SQL 【发布时间】:2021-09-11 05:49:39 【问题描述】:我试图弄清楚如何调用表中列名与声明变量的值匹配的列。在此示例中,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
【问题讨论】:
【参考方案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)
【讨论】:
以上是关于如何在 SQL 的 WHERE 子句中动态调用列的主要内容,如果未能解决你的问题,请参考以下文章