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

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

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

    如何學好java

    如何學好java,其實很簡單,只要用心體會,慢慢積累!
    posts - 106, comments - 7, trackbacks - 0, articles - 3
      BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理

    DB2行轉列

    Posted on 2011-12-07 10:36 哈希 閱讀(317) 評論(0)  編輯  收藏 所屬分類: sql 總結

     

    1. 班級  科目   分數  
    2. 1     語文   8800  
    3. 1     數學   8420  
    4. 1     英語   7812  
    5. ……  
    6. 2     語文   8715  
    7. 2     數學   8511  
    8. 2     英語   8512  
    9. ……  
    10.    
    11.    
    12. 要求轉換成下面這樣的結果  
    13. 班級    語文    數學    英語  
    14. 1       8800    8420    7812  
    15. 2       8715    8511    8512  

     

     

    這是一個非常經典的 4屬性的表設計模式,顧名思義,這樣的表一般有四列,分別是:entity_id, attribute_name, attribute_type, attribute_value ,這樣的設計使我們添加字段非常容易,如:我們想添加一個物理成績是非常簡單的,我們只要向表中插入一條記錄即可。但是,這樣的設計有一個非常嚴重的問題,那就是:查詢難度增加,查詢效率非常差。

    要想實現上面的查詢有一個原則,那就是:通過case語句創造虛擬字段,使結果集成為二維數組,然后應用聚合函數返回單一記錄。怎么樣?不理解,仔細看看下面的圖和分析下面的語句你就理解了。

     

    1. create table score  
    2. (  
    3.     banji integer,  
    4.     kemu varchar(10),   
    5.     fengshu integer  
    6. )  
    7. go  
    8.    
    9. insert into score values  
    10. (1, '語文', 8800),  
    11. (1, '數學', 8420),  
    12. (1, '英語', 7812),  
    13. (2, '語文', 8715),  
    14. (2, '數學', 8511),  
    15. (2, '英語', 8512)  
    16. go  
    17.    
    18. select banji,  
    19.        max(yuwen)        語文,  
    20.        max(shuxue)       數學,  
    21.        max(yingyu)       英語  
    22. from    
    23.      (select  banji,  
    24.               case kemu  
    25.                when '語文' then fengshu  
    26.                else 0  
    27.              end                         yuwen,  
    28.              case kemu  
    29.                when '數學' then fengshu  
    30.                else 0  
    31.              end                         shuxue,  
    32.              case kemu  
    33.                when '英語' then fengshu  
    34.                else 0  
    35.              end                         yingyu  
    36.       from score  
    37.       ) as inner  
    38. group by inner.banji  
    39. order by 1  
    40. go  

     

     

    你可能正在感嘆,這樣的解決方案是多么的巧妙,可惜不是我想出來的,在這里,我也不敢把大師的思想據為己有,以上思想來自<SQL語言藝術>的第11章,想了解更全面的信息,大家可以參考。

     

     

    主站蜘蛛池模板: 一本到卡二卡三卡免费高| 在线a亚洲老鸭窝天堂av高清| 疯狂做受xxxx高潮视频免费| 女人张开腿给人桶免费视频| 亚洲免费在线观看视频| 国产精品免费看久久久久| 亚洲天堂男人影院| 最近免费中文字幕大全视频| 中文字幕乱码亚洲精品一区| 国语成本人片免费av无码| 亚洲色偷精品一区二区三区| 在线免费观看一级片| 猫咪免费人成在线网站| 亚洲午夜久久久久久久久久| 国产精品久久亚洲不卡动漫| 成人啪精品视频免费网站| 怡红院亚洲红怡院在线观看| 久久久久亚洲AV成人网| 99精品视频在线观看免费专区| 亚洲综合激情视频| 免费精品人在线二线三线区别| 久久精品亚洲日本波多野结衣| 亚洲麻豆精品国偷自产在线91| 中文字幕视频在线免费观看| 亚洲精品乱码久久久久久下载 | 亚洲一区二区三区夜色| 永久看日本大片免费35分钟| 亚洲综合色7777情网站777| 国产午夜鲁丝片AV无码免费| 中文字幕在线视频免费观看| 中文字幕亚洲精品资源网| 日本免费福利视频| 99麻豆久久久国产精品免费| 亚洲电影免费观看| 亚洲AV无码乱码在线观看| 日本免费A级毛一片| 亚洲一本到无码av中文字幕| 亚洲性日韩精品国产一区二区| 四虎国产成人永久精品免费| 亚洲av无码一区二区三区在线播放| 人与禽交免费网站视频|