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

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

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

    /*
    普通行列轉(zhuǎn)換
    (愛(ài)新覺(jué)羅.毓華 2007-11-18于海南三亞)

    假設(shè)有張學(xué)生成績(jī)表(tb)如下:
    Name Subject Result
    張三 語(yǔ)文  74
    張三 數(shù)學(xué)  83
    張三 物理  93
    李四 語(yǔ)文  74
    李四 數(shù)學(xué)  84
    李四 物理  94
    */

    -------------------------------------------------------------------------
    /*
    想變成
    姓名 語(yǔ)文 數(shù)學(xué) 物理
    ---------- ----------- ----------- -----------
    李四 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('張三' , '語(yǔ)文' , 74)  
    9. insert into tb(Name , Subject , Result) values('張三' , '數(shù)學(xué)' , 83)  
    10. insert into tb(Name , Subject , Result) values('張三' , '物理' , 93)  
    11. insert into tb(Name , Subject , Result) values('李四' , '語(yǔ)文' , 74)  
    12. insert into tb(Name , Subject , Result) values('李四' , '數(shù)學(xué)' , 84)  
    13. insert into tb(Name , Subject , Result) values('李四' , '物理' , 94)  
    14. go  
    15.   
    16. --靜態(tài)SQL,指subject只有語(yǔ)文、數(shù)學(xué)、物理這三門課程。  
    17. select name 姓名,  
    18.   max(case subject when '語(yǔ)文' then result else 0 end) 語(yǔ)文,  
    19.   max(case subject when '數(shù)學(xué)' then result else 0 end) 數(shù)學(xué),  
    20.   max(case subject when '物理' then result else 0 end) 物理  
    21. from tb  
    22. group by name  
    /*
    姓名 語(yǔ)文 數(shù)學(xué) 物理
    ---------- ----------- ----------- -----------
    李四 74 84 94
    張三 74 83 93
    */
    1. --動(dòng)態(tài)SQL,指subject不止語(yǔ)文、數(shù)學(xué)、物理這三門課程。  
    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)   
    /*
    姓名 數(shù)學(xué) 物理 語(yǔ)文
    ---------- ----------- ----------- -----------
    李四 84 94 74
    張三 83 93 74
    */

    -------------------------------------------------------------------
    /*加個(gè)平均分,總分
    姓名 語(yǔ)文 數(shù)學(xué) 物理 平均分 總分
    ---------- ----------- ----------- ----------- -------------------- -----------
    李四 74 84 94 84.00 252
    張三 74 83 93 83.33 250
    */
    1. --靜態(tài)SQL,指subject只有語(yǔ)文、數(shù)學(xué)、物理這三門課程。  
    2. select name 姓名,  
    3.   max(case subject when '語(yǔ)文' then result else 0 end) 語(yǔ)文,  
    4.   max(case subject when '數(shù)學(xué)' then result else 0 end) 數(shù)學(xué),  
    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  
    /*
    姓名 語(yǔ)文 數(shù)學(xué) 物理 平均分 總分
    ---------- ----------- ----------- ----------- -------------------- -----------
    李四 74 84 94 84.00 252
    張三 74 83 93 83.33 250
    */
    1. --動(dòng)態(tài)SQL,指subject不止語(yǔ)文、數(shù)學(xué)、物理這三門課程。  
    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)   
    /*
    姓名 數(shù)學(xué) 物理 語(yǔ)文 平均分 總分
    ---------- ----------- ----------- ----------- -------------------- -----------
    李四 84 94 74 84.00 252
    張三 83 93 74 83.33 250
    */

    只有注冊(cè)用戶登錄后才能發(fā)表評(píng)論。


    網(wǎng)站導(dǎo)航:
     

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

    Copyright © 橡皮人

    主站蜘蛛池模板: 无码天堂亚洲国产AV| 好紧我太爽了视频免费国产| 日韩亚洲国产综合久久久| 产传媒61国产免费| 97se亚洲综合在线| 日韩免费观看视频| 久草视频在线免费看| 亚洲精品自偷自拍无码| 亚洲综合AV在线在线播放| 精品国产无限资源免费观看| 国产青草亚洲香蕉精品久久| 国产亚洲综合久久系列| 嫩草视频在线免费观看| jizz免费观看视频| 亚洲综合色丁香婷婷六月图片| 亚洲性久久久影院| 成人无码区免费视频观看| 中文字幕在线观看免费| 色婷五月综激情亚洲综合| 日韩亚洲变态另类中文| 一二三四在线观看免费高清中文在线观看 | 好吊妞在线成人免费| 免费看成人AA片无码视频吃奶| 亚洲熟妇无码一区二区三区 | 亚洲AV成人潮喷综合网| 中文字幕无码免费久久99| 免费毛片在线看不用播放器| 亚洲国产精华液2020| 亚洲综合激情另类小说区| 国产福利电影一区二区三区,亚洲国模精品一区 | 亚洲精品无码少妇30P| 亚洲AV无码久久精品成人| 免费一级做a爰片性色毛片| 亚洲三级高清免费| 久久精品成人免费观看| 日韩精品免费一线在线观看| 亚洲乱理伦片在线观看中字| 亚洲精品在线播放| 亚洲AV无码成人网站久久精品大| 亚洲国产一成久久精品国产成人综合 | 国内免费高清在线观看|