sql行列互轉

          數據列出來如下:
           ID NAME    COUR SCORE
          --- ------- ---- -----
            1 name_1  語文    33
            1 name_1  數學    63
            1 name_1  英語    71
            1 name_1  歷史    68
            1 name_1  化學    94
            2 name_2  語文    85
            2 name_2  數學     4
            2 name_2  英語    98
            2 name_2  歷史     9
            2 name_2  化學    12
            3 name_3  語文    49
            3 name_3  數學    96
            3 name_3  英語    30
            3 name_3  歷史    60
            3 name_3  化學     2
          要實現的行轉列的效果如下(或者類似的結果):
           ID NAME    SCORES
          --- ------- --------------------
            1 name_1  33,63,71,94,68
            2 name_2  85,4,98,12,9
            3 name_3  49,2,60,96,30
          通過case表達式
          select id,name,sum(case when course='語文' then score end) "語文",
          sum(case when course='數學' then score end) "數學",
          sum(case when course='英語' then score end) "英語",
          sum(case when course='歷史' then score end) "歷史",
          sum(case when course='化學' then score end) "化學"
          from HANG2LIE
          group by id,name;

          union有去重功能:
          結構如下:
           ID NAME       Chinese       Math    English    History  Chemistry
          --- ------- ---------- ---------- ---------- ---------- ----------
            2 name_2          85          4         98          9         12
            1 name_1          33         63         71         68         94
            3 name_3          49         96         30         60          2
          我們要實現如下的查詢效果:列轉行
           ID NAME     COUR SCORE
          --- -------- ---- -----
            2 name_2   語文    85
            1 name_1   語文    33
            3 name_3   語文    49
            2 name_2   數學     4
            1 name_1   數學    63
            3 name_3   數學    96
            2 name_2   英語    98
            1 name_1   英語    71
            3 name_3   英語    30
            2 name_2   歷史     9
            1 name_1   歷史    68
            3 name_3   歷史    60
            2 name_2   化學    12
            1 name_1   化學    94
            3 name_3   化學     2
          1、集合查詢
          實現的SQL語句:
          select id,name,'語文' course,chinese score from lie2hang
          union
          select id,name,'數學' course,math score from lie2hang
          union
          select id,name,'英語' course,english score from lie2hang
          union
          select id,name,'歷史' course,history score from lie2hang
          union
          select id,name,'化學' course,chemistry score from lie2hang;

          posted on 2016-08-04 17:51 youngturk 閱讀(207) 評論(0)  編輯  收藏 所屬分類: 筆試題Java基礎

          <2016年8月>
          31123456
          78910111213
          14151617181920
          21222324252627
          28293031123
          45678910

          導航

          統計

          公告

          this year :
          1 jQuery
          2 freemarker
          3 框架結構
          4 口語英語

          常用鏈接

          留言簿(6)

          隨筆分類

          隨筆檔案

          文章分類

          文章檔案

          相冊

          EJB學習

          Flex學習

          learn English

          oracle

          spring MVC web service

          SQL

          Struts

          生活保健

          解析文件

          搜索

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 大庆市| 泉州市| 额济纳旗| 垫江县| 武功县| 长治市| 连平县| 兴海县| 乌拉特前旗| 绥宁县| 沅江市| 新泰市| 慈利县| 崇左市| 桃源县| 湖口县| 徐水县| 湖州市| 明水县| 杭锦后旗| 交口县| 锦州市| 阆中市| 舟山市| 彭水| 凤台县| 贵德县| 井冈山市| 客服| 开封县| 安平县| 当涂县| 庆阳市| 平遥县| 德化县| 华容县| 林周县| 轮台县| 囊谦县| 阿克苏市| 和田县|