数据库-行转列的语法

表: PerTab
字段:name,  title,  values
原内容:一月  产品A   120
    二月  产品A   20
    一月  产品B    230
    二月  产品B   400
-----------------------------------------------
查询结果: 月份  产品A  产品B  数量(Values)
      一月  120   230
      二月  20   400
-----------------------------------------------
SQl语法:select name, sum(case title when 'title' then values else 0 end ) from PerTab group by name
备注: 其中中间的可以重复,得到所有的列

*****************************************************
可以自动生成的语句(摘录中国DOtNet)
 declare @sql varchar(8000)
 set @sql = 'select name'
 select @sql = @sql + ',sum(case title when '''+title+''' then values end) ['+title+']'
  from (select distinct title from PerTab) as a
 select @sql = @sql+' from PerTabgroup by name'
 exec(@sql)
******************************************************
非常感谢好心人将自己的知识与别人分享!
posted @ 2006-03-31 23:15  hingman  阅读(325)  评论(0)    收藏  举报