<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    隨筆-199  評論-203  文章-11  trackbacks-0

    問題: 假設有張學生成績表(Test)如下
           Name Subject Result
           張三 語文 80
           張三 數學 90
           張三 物理 85
           李四 語文 85
           李四 數學 92
           李四 物理 82
     
    結果:
           姓名 語文 數學 物理
           張三 80 90 85
           李四 85 92 82

    DROP TABLE Test
    create table Test(Name varchar(10),Subject Varchar(10),Result int)
    insert Test
    select '張三','語文',80 union all
    select '張三','數學',90 union all
    select '張三','物理',85 union all
    select '李四','語文',85 union all
    select '李四','數學',92 union all
    select '李四','物理',82
    go

    SELECT * FROM Test
     
    --用於多行的轉換
    declare @sql varchar(4000)
    set @sql = 'select Name'
    select @sql = @sql + ',sum(case Subject when '''+Subject+''' then Result end) ['+Subject+']'
    from (select distinct Subject from test) as a
    select @sql = @sql+' from test group by name'
           exec(@sql)

    --如果行數少這個看起來更加明瞭
    select Name as 姓名,
     sum(case Subject when '數學' then Result end) [數學],
     sum(case Subject when '物理' then Result end) [物理],
     sum(case Subject when '語文' then Result end) [語文]
    from Test group by name

    我以前面試的時候考試過這種類似的題,也是我們在編程開發(fā)過程中經常遇到的一種常見題,我的分析希望對大家有幫助。


     

    posted on 2009-02-20 15:05 Werther 閱讀(332) 評論(0)  編輯  收藏 所屬分類: 15.SQL Server
    主站蜘蛛池模板: 18女人水真多免费高清毛片| 国产亚洲视频在线| 亚洲精品国产精品乱码不卞| 无码国产精品一区二区免费| a级毛片免费完整视频| 亚洲AV无码专区在线观看成人 | 日韩精品免费一区二区三区| 日本免费大黄在线观看| 久久综合九色综合97免费下载| 人人爽人人爽人人片A免费| 337P日本欧洲亚洲大胆艺术图| 亚洲精品日韩专区silk| 亚洲日本在线观看视频| 亚洲精品无码日韩国产不卡?V| 成年女人永久免费观看片| 日本成人免费在线| 日韩一级免费视频| 亚洲国产精品碰碰| 国产aⅴ无码专区亚洲av麻豆 | 嫩草影院免费观看| 国产免费资源高清小视频在线观看| 成人免费一区二区无码视频| 国产一卡二卡四卡免费| 色吊丝最新永久免费观看网站| 在线免费一区二区| 亚洲乱亚洲乱妇无码麻豆| 中文字幕亚洲精品| 成a人片亚洲日本久久| 国产精品免费看久久久香蕉| 91久久青青草原线免费| 国产精品冒白浆免费视频| 亚洲AV无码一区二区三区DV| 日本亚洲免费无线码| 99在线热播精品免费99热| 97人妻无码一区二区精品免费| 免费一级毛片在线观看| 18亚洲男同志videos网站| 免费人成大片在线观看播放电影| 日本免费中文字幕| 亚洲国产成人精品女人久久久 | 久久亚洲国产精品五月天婷|