<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片一区二区三区| 欧美三级在线电影免费| 四虎永久免费网站免费观看| 亚洲国产综合专区电影在线| 女人裸身j部免费视频无遮挡| 毛片免费观看的视频在线| 亚洲AV日韩精品久久久久久久| 无人视频在线观看免费播放影院| 麻豆一区二区免费播放网站 | 精品无码无人网站免费视频 | 亚洲乱码国产一区三区| 在线观看亚洲免费视频| 18禁免费无码无遮挡不卡网站 | 黄色毛片视频免费| 久久电影网午夜鲁丝片免费| 亚洲精品私拍国产福利在线| 最新亚洲成av人免费看| 免费二级毛片免费完整视频| 亚洲日韩精品无码专区加勒比 | 亚洲精品高清在线| 色偷偷噜噜噜亚洲男人| 毛片a级毛片免费观看免下载 | 免费日本黄色网址| 亚洲综合在线一区二区三区 | 亚洲性猛交XXXX| 特级毛片aaaa级毛片免费| 免费黄色app网站| www.亚洲成在线| 成年人免费的视频| 78成人精品电影在线播放日韩精品电影一区亚洲 | 日本免费电影一区二区| 亚洲乱码国产乱码精品精| 免费的黄色网页在线免费观看| 色吊丝最新永久免费观看网站| 丁香婷婷亚洲六月综合色| 在线看片免费人成视久网| 亚洲精品高清国产一久久| 久久精品视频免费播放| 久久夜色精品国产亚洲AV动态图 | 国产午夜免费福利红片| 男女猛烈xx00免费视频试看|