<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 © 橡皮人

    主站蜘蛛池模板: 亚洲精品夜夜夜妓女网| 国产精品亚洲高清一区二区| 黄色网址在线免费观看| 亚洲视频免费播放| 久久久久亚洲AV综合波多野结衣| 最新欧洲大片免费在线 | 91福利视频免费| aa级毛片毛片免费观看久| 色天使亚洲综合在线观看| 亚洲卡一卡2卡三卡4麻豆| 亚洲AV日韩AV高潮无码专区| 亚洲精品成人久久久| 免费在线观看黄色毛片| 亚洲一本大道无码av天堂| 日本免费网站视频www区| 18禁男女爽爽爽午夜网站免费| 成全视频在线观看免费| 免费看黄网站在线看| 国产精品hd免费观看| 成人无码区免费视频观看| 亚洲一区无码中文字幕| jizzjizz亚洲日本少妇| 97免费人妻无码视频| 久久久久久亚洲精品中文字幕 | 日本高清高色视频免费| 啦啦啦高清视频在线观看免费 | 亚洲不卡无码av中文字幕| 亚洲中文字幕久久精品无码APP| 久久久综合亚洲色一区二区三区| 亚洲大尺码专区影院| 一级看片免费视频囗交| 免费在线看黄的网站| 超pen个人视频国产免费观看 | 成年人免费视频观看| 亚洲人成人一区二区三区| 亚洲AV无码一区二区三区在线| a级毛片免费完整视频| 青青青国产免费一夜七次郎| 亚洲色图黄色小说| 日本免费xxxx| 亚洲视频国产精品|