在SQL select语句中重用列名作为声明的变量

时间:2018-04-09 16:55:28

标签: sql-server tsql variables reusability

我正在开发一个项目,每个月都会更改列名。所以我试图声明一个包含我可以重用的列名的变量。 所以我这样做了。

declare @cal_name varchar(max) = 'ID'
select @cal_name from Table_A
union all
select @cal_name from Table_B

但这只是在结果框中将ID打印为字符串。 我不想使用另一个变量来存储sql语句,任何人都可以帮我按照我的要求进行查询。

1 个答案:

答案 0 :(得分:1)

这样的东西?

declare @cal_name varchar(max) = 'ID'    
exec
(
    'select ' + @cal_name + ' from Table_A
    union all
    select ' + @cal_name + ' from Table_B'
)