我正在开发一个项目,每个月都会更改列名。所以我试图声明一个包含我可以重用的列名的变量。 所以我这样做了。
declare @cal_name varchar(max) = 'ID'
select @cal_name from Table_A
union all
select @cal_name from Table_B
但这只是在结果框中将ID打印为字符串。 我不想使用另一个变量来存储sql语句,任何人都可以帮我按照我的要求进行查询。
答案 0 :(得分:1)
这样的东西?
declare @cal_name varchar(max) = 'ID'
exec
(
'select ' + @cal_name + ' from Table_A
union all
select ' + @cal_name + ' from Table_B'
)