<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

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


     

    posted on 2009-02-20 15:05 Werther 閱讀(335) 評論(0)  編輯  收藏 所屬分類: 15.SQL Server
    主站蜘蛛池模板: eeuss在线兵区免费观看| 亚洲AV无码国产一区二区三区| 一道本不卡免费视频| 免费国产a国产片高清网站| 亚洲国产精品美女久久久久| 成人免费无码大片a毛片| 亚洲欧洲日产国码久在线| 免费无码又爽又刺激高潮| 亚洲a无码综合a国产av中文| 亚洲AV无码成人精品区大在线| 美女被艹免费视频| 精品亚洲一区二区三区在线观看| 9久久免费国产精品特黄| 亚洲精品国偷自产在线| 精品无码无人网站免费视频 | 国产成人精品免费视频动漫| 亚洲国产精品白丝在线观看| 99久久综合国产精品免费| 亚洲AV电影天堂男人的天堂 | 亚洲视频一区二区| a视频在线观看免费| 久久精品亚洲精品国产色婷| 成人福利免费视频| 天天综合亚洲色在线精品| 日韩精品亚洲aⅴ在线影院| 99久热只有精品视频免费看| 亚洲va在线va天堂va手机| 亚洲国产成人久久综合碰| 久久aⅴ免费观看| 亚洲国产日韩a在线播放| 亚洲一区二区视频在线观看| 久久免费看少妇高潮V片特黄| 国产成人精品日本亚洲11| 亚洲国产精品一区二区九九 | 青青青青青青久久久免费观看| 成年网在线观看免费观看网址| 亚洲国产精品人久久| 国产午夜无码视频免费网站| 大地资源中文在线观看免费版| 亚洲一卡2卡4卡5卡6卡在线99 | 亚洲AV永久精品爱情岛论坛|