1、创建模拟数据源表
2、插入模拟数据
3、定义变量,模拟需要动态获取的列名
4、执行动态SQL查询:表#table1的@colname列,同时满足code=@code的结果
5、查询效果如下:
6、完整模拟SQL如下:-- 1、创建模拟数据源表IF OBJECT_ID('tempdb..#table1') IS NOT NULL DROP TABLE #table1;create table #table1( code varchar(100), col1 varchar(100), col2 varchar(100), col3 varchar(100));-- 2、插入模拟数据insert into #table1(code, col1, col2, col3) values('row1', 'col1-1', 'col2-1', 'col3-1');insert into #table1(code, col1, col2, col3) values('row2', 'col1-2', 'col2-2', 'col3-2');insert into #table1(code, col1, col2, col3) values('row3', 'col1-3', 'col2-3', 'col3-3');-- 3、定义变量,模拟需要动态获取的列名declare @colname varchar(100) = 'col2';-- 4、动态SQL查询:表#table1的@colname列,同时满足code=@code的结果declare @sql varchar(max);declare @code varchar(100) = 'row2';set @sql = 'select ''' + @colname + ''' as [name], ' + @colname + ' as [value] from #table1 where code = ''' + @code + ''' ';exec(@sql);