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

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

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

    普通行列轉換(轉載)

    Posted on 2008-12-24 18:54 橡皮人 閱讀(257) 評論(0)  編輯  收藏
    /*
    普通行列轉換
    (愛新覺羅.毓華 2007-11-18于海南三亞)

    假設有張學生成績表(tb)如下:
    Name Subject Result
    張三 語文  74
    張三 數學  83
    張三 物理  93
    李四 語文  74
    李四 數學  84
    李四 物理  94
    */

    -------------------------------------------------------------------------
    /*
    想變成
    姓名 語文 數學 物理
    ---------- ----------- ----------- -----------
    李四 74 84 94
    張三 74 83 93
    */
    1. create table tb  
    2. (  
    3.    Name    varchar(10) ,  
    4.    Subject varchar(10) ,  
    5.    Result  int  
    6. )  
    7.   
    8. insert into tb(Name , Subject , Result) values('張三' , '語文' , 74)  
    9. insert into tb(Name , Subject , Result) values('張三' , '數學' , 83)  
    10. insert into tb(Name , Subject , Result) values('張三' , '物理' , 93)  
    11. insert into tb(Name , Subject , Result) values('李四' , '語文' , 74)  
    12. insert into tb(Name , Subject , Result) values('李四' , '數學' , 84)  
    13. insert into tb(Name , Subject , Result) values('李四' , '物理' , 94)  
    14. go  
    15.   
    16. --靜態SQL,指subject只有語文、數學、物理這三門課程。  
    17. select name 姓名,  
    18.   max(case subject when '語文' then result else 0 end) 語文,  
    19.   max(case subject when '數學' then result else 0 end) 數學,  
    20.   max(case subject when '物理' then result else 0 end) 物理  
    21. from tb  
    22. group by name  
    /*
    姓名 語文 數學 物理
    ---------- ----------- ----------- -----------
    李四 74 84 94
    張三 74 83 93
    */
    1. --動態SQL,指subject不止語文、數學、物理這三門課程。  
    2. declare @sql varchar(8000)  
    3. set @sql = 'select Name as ' + '姓名'  
    4. select @sql = @sql + ' , max(case Subject when ''' + Subject + ''' then Result else 0 end) [' + Subject + ']'  
    5. from (select distinct Subject from tb) as a  
    6. set @sql = @sql + ' from tb group by name'  
    7. exec(@sql)   
    /*
    姓名 數學 物理 語文
    ---------- ----------- ----------- -----------
    李四 84 94 74
    張三 83 93 74
    */

    -------------------------------------------------------------------
    /*加個平均分,總分
    姓名 語文 數學 物理 平均分 總分
    ---------- ----------- ----------- ----------- -------------------- -----------
    李四 74 84 94 84.00 252
    張三 74 83 93 83.33 250
    */
    1. --靜態SQL,指subject只有語文、數學、物理這三門課程。  
    2. select name 姓名,  
    3.   max(case subject when '語文' then result else 0 end) 語文,  
    4.   max(case subject when '數學' then result else 0 end) 數學,  
    5.   max(case subject when '物理' then result else 0 end) 物理,  
    6.   cast(avg(result*1.0) as decimal(18,2)) 平均分,  
    7.   sum(result) 總分  
    8. from tb  
    9. group by name  
    /*
    姓名 語文 數學 物理 平均分 總分
    ---------- ----------- ----------- ----------- -------------------- -----------
    李四 74 84 94 84.00 252
    張三 74 83 93 83.33 250
    */
    1. --動態SQL,指subject不止語文、數學、物理這三門課程。  
    2. declare @sql1 varchar(8000)  
    3. set @sql1 = 'select Name as ' + '姓名'  
    4. select @sql1 = @sql1 + ' , max(case Subject when ''' + Subject + ''' then Result else 0 end) [' + Subject + ']'  
    5. from (select distinct Subject from tb) as a  
    6. set @sql1 = @sql1 + ' , cast(avg(result*1.0) as decimal(18,2)) 平均分,sum(result) 總分 from tb group by name'  
    7. exec(@sql1)   
    /*
    姓名 數學 物理 語文 平均分 總分
    ---------- ----------- ----------- ----------- -------------------- -----------
    李四 84 94 74 84.00 252
    張三 83 93 74 83.33 250
    */

    只有注冊用戶登錄后才能發表評論。


    網站導航:
     

    posts - 28, comments - 5, trackbacks - 0, articles - 0

    Copyright © 橡皮人

    主站蜘蛛池模板: 妞干网手机免费视频| 美女被免费喷白浆视频| 又黄又大又爽免费视频| 在线观看亚洲AV日韩A∨| 国产精品永久免费10000| 亚洲毛片一级带毛片基地| 最近免费中文字幕大全免费版视频| 亚洲av福利无码无一区二区| 无码专区AAAAAA免费视频| 久久亚洲精品无码| 亚洲视频在线免费看| 亚洲午夜精品在线| 在线播放免费人成视频在线观看| 亚洲永久网址在线观看| 永久在线毛片免费观看| 羞羞漫画页面免费入口欢迎你| 亚洲精品第一国产综合境外资源 | 午夜免费1000部| 亚洲中文无码a∨在线观看| 国产免费毛不卡片| 美女隐私免费视频看| 亚洲一区AV无码少妇电影☆| 秋霞人成在线观看免费视频| 亚洲毛片免费观看| 国产老女人精品免费视频| 免费人成网上在线观看| 亚洲中文久久精品无码ww16| 日韩人妻一区二区三区免费| 亚洲精品天堂在线观看| 亚洲色偷偷狠狠综合网| 无码A级毛片免费视频内谢| 亚洲日韩国产精品乱-久| 一级毛片直播亚洲| 一区二区三区观看免费中文视频在线播放 | 久久久久久亚洲精品| 波多野结衣免费在线| 无人视频免费观看免费视频| 亚洲AV无码一区二区二三区软件| 成年人网站免费视频| 久久精品无码专区免费| 亚洲一区二区三区不卡在线播放|