行转列

今天遇到一个动态行转列的问题在网上查到了一SQL语句。


create table test(采购编号 nvarchar(50)
   ,属性名称 nvarchar(50)
   ,属性文本 nvarchar(50)
  )

insert into test select '01','付款方式','一次性'
insert into test select '02','厂商名称','IBM'


select * from test


  declare   @sql   varchar(8000)  
  set   @sql   =   'select   采购编号'  
  select   @sql   =   @sql   +   ',max(case   属性名称   when   '''+属性名称+'''   then   属性文本   end)   ['+属性名称+']'  
  from   (select   distinct   属性名称   from   test)   as   a  
  select   @sql   =   @sql+'   from   test   group   by   采购编号'  
 print @sql
  exec(@sql)  

drop table test




原文地址:https://www.cnblogs.com/zqonline/p/799404.html