<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      行列轉換(將表旋轉90度)

      普通行列轉換  
         
        假設有張學生成績表(t)如下  
         
                Name   Subject   Result  
                張三   語文  73  
                張三   數學  83  
                張三   物理  93  
                李四   語文  74  
                李四   數學  84  
                李四   物理  94  
         
                想變成    
                姓名   語文   數學   物理  
                張三   73  83  93  
                李四   74  84  94  
         
                create   table   #t  
                (  
                Name         varchar(10)   ,  
                Subject   varchar(10)   ,  
                Result     int  
                )  
         
                insert   into   #t(Name   ,   Subject   ,   Result)   values('張三','語文','73')  
                insert   into   #t(Name   ,   Subject   ,   Result)   values('張三','數學','83')  
                insert   into   #t(Name   ,   Subject   ,   Result)   values('張三','物理','93')  
                insert   into   #t(Name   ,   Subject   ,   Result)   values('李四','語文','74')  
                insert   into   #t(Name   ,   Subject   ,   Result)   values('李四','數學','83')  
                insert   into   #t(Name   ,   Subject   ,   Result)   values('李四','物理','93')  
         
                declare   @sql   varchar(8000)  
                set   @sql   =   'select   Name   as   '   +   '姓名'  
                select   @sql   =   @sql   +   '   ,   sum(case   Subject   when   '''   +   Subject   +   '''   then   Result   end)   ['   +   Subject   +   ']'  
                from   (select   distinct   Subject   from   #t)   as   a  
                set   @sql   =   @sql   +   '   from   #t   group   by   name'  
                exec(@sql)    
         
                drop   table   #t  
         
                --結果  
                姓名               數學                 物理                 語文                      
                ----------   -----------   -----------   -----------    
                李四               83                     93                     74  
                張三               83                     93                     73  
           
         
        如果上述兩表互相換一下:即  
         
                姓名   語文   數學   物理  
                張三   73  83  93  
                李四   74  84  94  
         
                想變成    
         
                Name   Subject   Result  
                張三   語文  73  
                張三   數學  83  
                張三   物理  93  
                李四   語文  74  
                李四   數學  84  
                李四   物理  94  
         
                create   table   #t  
                (  
                姓名   varchar(10)   ,  
                語文   int   ,  
                數學   int   ,  
                物理   int  
                )  
         
                insert   into   #t(姓名   ,   語文   ,   數學   ,   物理)   values('張三',73,83,93)  
                insert   into   #t(姓名   ,   語文   ,   數學   ,   物理)   values('李四',74,84,94)  
         
                select   姓名   as   Name,'語文'   as   Subject,語文   as   Result   from   #t   union  
                select   姓名   as   Name,'數學'   as   Subject,數學   as   Result   from   #t   union  
                select   姓名   as   Name,'物理'   as   Subject,物理   as   Result   from   #t  
                order   by   姓名   desc    
         
                drop   table   #t  
           
                Name               Subject   Result              
                ----------   -------   -----------    
                張三               數學         83  
                張三               物理         93  
                張三               語文         73  
                李四               數學         84  
                李四               物理         94  
                李四               語文         74  
         
                (所影響的行數為   6   行)   

       

      將表旋轉90度.  
         
        將下表數據:  
        A                                         b                       c                       d                       e                        
        --------------------   -----------   -----------   -----------   -----------    
        x                                         1                       2                       3                       4  
        y                                         5                       6                       7                       8  
        z                                         9                       10                     11                     12  
         
        轉化成如下結果:  
        a                                         x                     y                     z                      
        --------------------   ----------   ----------   ----------    
        b                                         1                     5                     9  
        c                                         2                     6                     10  
        d                                         3                     7                     11  
        e                                         4                     8                     12  
         
        --生成測試數據  
        create   table   test1(A   varchar(20),b   int,c   int,d   int,e   int)  
        insert   into   test1   select   'x',1,2   ,3   ,4  
        insert   into   test1   select   'y',5,6   ,7   ,8  
        insert   into   test1   select   'z',9,10,11,12  
         
         
        --生成中間數據表  
        declare   @s   varchar(8000)  
        set   @s='create   table   test2(a   varchar(20)'  
        select   @s=@s+','+A+'   varchar(10)'   from   test1  
        set   @s=@s+')'  
        exec(@s)  
         
        --借助中間表實現行列轉換  
        declare   @name   varchar(20)  
         
        declare   t_cursor   cursor   for    
        select   name   from   syscolumns    
        where   id=object_id('test1')   and   colid>1   order   by   colid  
         
        open   t_cursor  
         
        fetch   next   from   t_cursor   into   @name  
         
        while   @@fetch_status=0  
        begin  
                exec('select   '+@name+'   as   t   into   test3   from   test1')  
                set   @s='insert   into   test2   select   '''+@name+''''  
                select   @s=@s+','''+rtrim(t)+''''   from   test3  
                exec(@s)  
                exec('drop   table   test3')  
                fetch   next   from   t_cursor   into   @name  
        end  
        close   t_cursor  
        deallocate   t_cursor  
         
         
        --查看行列互換處理結果  
        select   *   from   test1  
        select   *   from   test2  
         
        --刪除表  
        drop   table   test1  
        drop   table   test2

       

      --生成測試數據  
        create   table   test1(姓名   varchar(10),   語文   int,   數學   int,   物理   int)  
        insert   into   test1   select   '張三',   80,   90,   85  
        insert   into   test1   select   '李四',   85,   92,   82  
         
         
        --生成中間數據表  
        declare   @s   varchar(8000)  
        set   @s='create   table   test2(姓名   varchar(10)'  
        select   @s=@s+','+   姓名   +'   varchar(10)'   from   test1  
        set   @s=@s+')'  
        exec(@s)  
         
        --借助中間表實現行列轉換  
        declare   @name   varchar(20)  
         
        declare   t_cursor   cursor   for    
        select   name   from   syscolumns    
        where   id=object_id('test1')   and   colid>1   order   by   colid  
         
        open   t_cursor  
         
        fetch   next   from   t_cursor   into   @name  
         
        while   @@fetch_status=0  
        begin  
                exec('select   '+@name+'   as   t   into   test3   from   test1')  
                set   @s='insert   into   test2   select   '''+@name+''''  
                select   @s=@s+','''+rtrim(t)+''''   from   test3  
                exec(@s)  
                exec('drop   table   test3')  
                fetch   next   from   t_cursor   into   @name  
        end  
        close   t_cursor  
        deallocate   t_cursor  
         
         
        --查看行列互換處理結果  
        select   *   from   test1  
        select   *   from   test2  
         
        --刪除表  
        drop   table   test1  
        drop   table   test2  
         
        /*result  
        姓名                   語文                 數學                 物理                      
        ----------   -----------   -----------   -----------    
        張三                   80                     90                     85  
        李四                   85                     92                     82  
         
        (所影響的行數為   2   行)  
         
        姓名                   張三               李四                    
        ----------   ----------   ----------    
        語文                   80                   85  
        數學                   90                   92  
        物理                   85                   82  
         
        (所影響的行數為   3   行)  
        */   

      posted @ 2008-01-28 16:33  嘯翱姜糊  閱讀(694)  評論(0)    收藏  舉報
      主站蜘蛛池模板: 免费无码又爽又刺激高潮的app| 巴东县| 成人免费视频一区二区三区| 婷婷色香五月综合缴缴情香蕉| 中文字幕乱码十国产乱码| 精品视频一区二区| 国产一区二区在线激情往| 亚洲 制服 丝袜 无码 | 午夜激情小视频一区二区| 亚洲欧美偷拍另类A∨| 男女裸交免费无遮挡全过程| 福利一区二区不卡国产| 亚洲男人成人性天堂网站| 新郑市| 国产av国片精品一区二区| 国产精品自在拍首页视频8| 亚洲av成人一区国产精品| 日韩狼人精品在线观看| 色99久久久久高潮综合影院| 国产精品一码二码三码| 午夜三级成人在线观看| 国产精品成人综合色在线| 91人妻无码成人精品一区91| 激情六月丁香婷婷四房播| 中文字幕日韩有码第一页| 成人欧美日韩一区二区三区| 高清无打码一区二区三区| 国产精品多p对白交换绿帽| 五月婷婷激情第四季| 国产在线精彩自拍视频| 精品亚洲国产成人av制服| 欧美性69式xxxx护士| 国产亚洲精品久久久久婷婷瑜伽| 岛国最新亚洲伦理成人| 人妻系列无码专区69影院| 日本熟妇XXXX潮喷视频| 国产麻豆精品手机在线观看| 精品午夜福利无人区乱码| 国产中文字幕日韩精品| 少妇人妻偷人精品免费| 无码丰满人妻熟妇区|