当前位置: 首页  >  SqlServer  >  SQL Server 表字段值转列名 示例

SQL Server 表字段值转列名 示例 TOP

 
  1.   
  2. myface    
  3.   
  4.   
  5.   
  6.   
  7. SQL Server 表字段值转列名 示例    
  8.   
  9.   
  10. 前几天,同事问我怎样把字段值转换成字段列,就写了一个最简单的Demo分享一下。   
  11.   
  12. 代码如下:   
  13.   
  14.     
  15.   
  16. -- 创建测试表以及添加测试数据   
  17. create table #temp(a money,b varchar(10))   
  18.   
  19. /*   
  20. insert into #temp(a,b) values(10,''1点'')   
  21. insert into #temp(a,b) values(20,''2点'')   
  22. insert into #temp(a,b) values(20,''3点'')   
  23. insert into #temp(a,b) values(20,''4点'')   
  24. insert into #temp(a,b) values(20,''5点'')   
  25. insert into #temp(a,b) values(30,''6点'')   
  26. insert into #temp(a,b) values(20,''7点'')   
  27. insert into #temp(a,b) values(48,''8点'')   
  28. insert into #temp(a,b) values(20,''9点'')   
  29. insert into #temp(a,b) values(15,''10点'')   
  30. */   
  31. select * from #temp  
  32.   
  33. -- 查询结果   
  34. declare @sql nvarchar(max)='''';   
  35. select @sql=@sql+ (case @sql when '''' then '''' else '','' end)+''max(case b when ''''''+b+'''''' then a else 0 end) [''+b+'']'' from #temp;   
  36. set @sql=''select ''+@sql+'' from #temp;'';   
  37. exec sp_executesql @sql;   
  38.   
  39. --drop table #temp   

 

Views:686   Posted at:2013-11-29
收藏 推荐 打印 | 录入:Admin | 阅读:0