sql server 动态SQL:动态查询表中的列数据

2025-10-30 10:19:52

1、创建模拟数据源表

sql server 动态SQL:动态查询表中的列数据

2、插入模拟数据

sql server 动态SQL:动态查询表中的列数据

3、定义变量,模拟需要动态获取的列名

sql server 动态SQL:动态查询表中的列数据

4、执行动态SQL查询:表#table1的@colname列,同时满足code=@code的结果

sql server 动态SQL:动态查询表中的列数据

5、查询效果如下:

sql server 动态SQL:动态查询表中的列数据

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);

声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
猜你喜欢