能不能把一个变量的值 转换成 列名
比如 @declare a nvarchar(max)
set @a = 'col'
能不能把 该变量的值 col 转行成 列名 col
------解决方案--------------------if object_id('tb') is not null drop table tb
declare @a nvarchar(max)
set @a = 'col'
declare @b varchar(100)
set @b ='create table tb ('+@a + ' int)'
exec (@b )
select * from tb
------解决方案--------------------用动态SQL实现,把变量@a拼接到一个动态SQL里,然后执行该动态SQL.
------解决方案--------------------
declare @a nvarchar(max),@sql nvarchar(max)
set @a = 'col'
set @sql='select 字段1 as '+@a+' from temp'
exec(@sql)
------解决方案--------------------
接着上面写,假设返回的数据类型是INT :
DECLARE @result INT
DECLARE @tmp TABLE (result INT)
INSERT @tmp EXEC(@sql)
SELECT @result=result FROM @tmp