您现在的位置: 中国男护士网 >> 考试频道 >> 计算机等级 >> 一级辅导 >> 正文    
  讲解数据库中行级转换成列级的实际应用 【注册男护士专用博客】          

讲解数据库中行级转换成列级的实际应用

www.nanhushi.com     佚名   不详 

  首先,我们需要建立一个表,详细内容请参考下文:

create table score(   Name    varchar(10),   Subject varchar(10),   Result int)go -- Insert some data to score tableinsert into score(Name , Subject , Result) values('Jason' , 'Chinese' , 74)insert into score(Name , Subject , Result) values('Jason' , 'Math' , 83)insert into score(Name , Subject , Result) values('Jason' , 'Physic' , 93)insert into score(Name , Subject , Result) values('Bosco' , 'Chinese' , 74)insert into score(Name , Subject , Result) values('Bosco' , 'Math' , 84)insert into score(Name , Subject , Result) values('Bosco' , 'Physic' , 94)go -- useing PIVOT operatorSELECT * FROM(        select Name,Subject,Result from score) as XPIVOT(       Sum(Result) FOR Subject IN ([Chinese],[Math],[Physic])) AS PVT -- useing static SQL. There only are [Chinese],[Math],[Physic] values in subject fieldselect Name, sum(case Subject when 'Chinese' then Result else 0 end) as [Chinese], sum(case Subject when 'Math' then Result else 0 end) as [Math], sum(case Subject when 'Physic' then Result else 0 end) as [Physic]from scoregroup by Name -- useing dynamic SQL. There may be some other values in subject field,don't limited to [Chinese],[Math],[Physic]declare @sql varchar(2000)set @sql = 'select Name'select @sql = @sql + ', sum(case Subject when ''' + Subject + ''' then Result else 0 end) [' + Subject + ']'from (select distinct Subject from score) as Xset @sql = @sql + ' from score group by Name'exec(@sql)

 

文章录入:杜斌    责任编辑:杜斌 
  • 上一篇文章:

  • 下一篇文章:
  • 【字体: 】【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
     

    联 系 信 息
    QQ:88236621
    电话:15853773350
    E-Mail:malenurse@163.com
    免费发布招聘信息
    做中国最专业男护士门户网站
    最 新 热 门
    最 新 推 荐
    相 关 文 章
    2011年护士资格考试:考…
    2009年初级护士资格考试…
    2009年主管护师考试于12…
    2009年初级护士考试于12…
    2009年初级护师考试于12…
    石家庄市关于2009年度护…
    2009年护士专业技术资格…
    医护技能考试周末举行 4…
    护士“托福”今年7月开考
    护士“托福”考试开始报…
    专 题 栏 目