<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 橡皮人 閱讀(251) 評論(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 © 橡皮人

    主站蜘蛛池模板: 亚洲午夜福利精品无码| 中文字幕无码不卡免费视频| 免费无遮挡无码永久在线观看视频| 亚洲欧洲自拍拍偷午夜色| 免费在线看污视频| 亚洲国产天堂在线观看| 99在线观看免费视频| 亚洲国产精品久久人人爱| www.黄色免费网站| 亚洲爆乳无码精品AAA片蜜桃| 日韩中文字幕免费| 一级做a爰片久久毛片免费陪 | 日韩在线看片免费人成视频播放| 亚洲人成毛片线播放| 亚洲免费网站观看视频| 亚洲精品无码国产片| 亚洲国产精品成人一区| 国产午夜无码片免费| 亚洲高清中文字幕综合网| 亚洲免费网站观看视频| 免费无码国产在线观国内自拍中文字幕| 亚洲精品动漫人成3d在线| 久久免费观看国产精品| xxx毛茸茸的亚洲| 免费jlzzjlzz在线播放视频| 二个人看的www免费视频| 91在线精品亚洲一区二区| 妞干网在线免费观看| 乱淫片免费影院观看| 香蕉蕉亚亚洲aav综合| 啦啦啦在线免费视频| 本道天堂成在人线av无码免费| 亚洲成AV人片在线观看WWW| 国产精品视频免费| 免费人成动漫在线播放r18| 亚洲精品成人av在线| 曰皮全部过程视频免费国产30分钟 | 亚洲中文字幕精品久久| 免费观看成人毛片a片2008| 亚洲精品黄色视频在线观看免费资源 | 免费一级黄色毛片|