在 SQL select 语句中重用列名作为声明变量
Reusing column name as declared variable in SQL select statement
我正在从事一个项目,其中的列名称每个月都会更改。所以我试图声明一个变量,其中包含我可以重用的列名。
所以我这样做了。
declare @cal_name varchar(max) = 'ID'
select @cal_name from Table_A
union all
select @cal_name from Table_B
但这只是在结果框中将 ID 作为字符串打印出来。
我不想使用另一个变量来存储 sql 语句,任何人都可以帮助我根据我的要求进行查询。
是这样的吗?
declare @cal_name varchar(max) = 'ID'
exec
(
'select ' + @cal_name + ' from Table_A
union all
select ' + @cal_name + ' from Table_B'
)
我正在从事一个项目,其中的列名称每个月都会更改。所以我试图声明一个变量,其中包含我可以重用的列名。 所以我这样做了。
declare @cal_name varchar(max) = 'ID'
select @cal_name from Table_A
union all
select @cal_name from Table_B
但这只是在结果框中将 ID 作为字符串打印出来。 我不想使用另一个变量来存储 sql 语句,任何人都可以帮助我根据我的要求进行查询。
是这样的吗?
declare @cal_name varchar(max) = 'ID'
exec
(
'select ' + @cal_name + ' from Table_A
union all
select ' + @cal_name + ' from Table_B'
)