【问题标题】:How to call a column dynamically in the WHERE clause in SQL如何在 SQL 的 WHERE 子句中动态调用列
【发布时间】: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 
 

【问题讨论】:

    标签: sql dynamic-sql mysql-variables


    【解决方案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)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-09-13
      • 2014-03-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-12-25
      相关资源
      最近更新 更多