sql行列互轉(zhuǎn)

          數(shù)據(jù)列出來(lái)如下:
           ID NAME    COUR SCORE
          --- ------- ---- -----
            1 name_1  語(yǔ)文    33
            1 name_1  數(shù)學(xué)    63
            1 name_1  英語(yǔ)    71
            1 name_1  歷史    68
            1 name_1  化學(xué)    94
            2 name_2  語(yǔ)文    85
            2 name_2  數(shù)學(xué)     4
            2 name_2  英語(yǔ)    98
            2 name_2  歷史     9
            2 name_2  化學(xué)    12
            3 name_3  語(yǔ)文    49
            3 name_3  數(shù)學(xué)    96
            3 name_3  英語(yǔ)    30
            3 name_3  歷史    60
            3 name_3  化學(xué)     2
          要實(shí)現(xiàn)的行轉(zhuǎn)列的效果如下(或者類(lèi)似的結(jié)果):
           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
          通過(guò)case表達(dá)式
          select id,name,sum(case when course='語(yǔ)文' then score end) "語(yǔ)文",
          sum(case when course='數(shù)學(xué)' then score end) "數(shù)學(xué)",
          sum(case when course='英語(yǔ)' then score end) "英語(yǔ)",
          sum(case when course='歷史' then score end) "歷史",
          sum(case when course='化學(xué)' then score end) "化學(xué)"
          from HANG2LIE
          group by id,name;

          union有去重功能:
          結(jié)構(gòu)如下:
           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
          我們要實(shí)現(xiàn)如下的查詢(xún)效果:列轉(zhuǎn)行
           ID NAME     COUR SCORE
          --- -------- ---- -----
            2 name_2   語(yǔ)文    85
            1 name_1   語(yǔ)文    33
            3 name_3   語(yǔ)文    49
            2 name_2   數(shù)學(xué)     4
            1 name_1   數(shù)學(xué)    63
            3 name_3   數(shù)學(xué)    96
            2 name_2   英語(yǔ)    98
            1 name_1   英語(yǔ)    71
            3 name_3   英語(yǔ)    30
            2 name_2   歷史     9
            1 name_1   歷史    68
            3 name_3   歷史    60
            2 name_2   化學(xué)    12
            1 name_1   化學(xué)    94
            3 name_3   化學(xué)     2
          1、集合查詢(xún)
          實(shí)現(xiàn)的SQL語(yǔ)句:
          select id,name,'語(yǔ)文' course,chinese score from lie2hang
          union
          select id,name,'數(shù)學(xué)' course,math score from lie2hang
          union
          select id,name,'英語(yǔ)' course,english score from lie2hang
          union
          select id,name,'歷史' course,history score from lie2hang
          union
          select id,name,'化學(xué)' course,chemistry score from lie2hang;

          posted on 2016-08-04 17:51 youngturk 閱讀(201) 評(píng)論(0)  編輯  收藏 所屬分類(lèi): 筆試題Java基礎(chǔ)

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

          導(dǎo)航

          統(tǒng)計(jì)

          公告

          this year :
          1 jQuery
          2 freemarker
          3 框架結(jié)構(gòu)
          4 口語(yǔ)英語(yǔ)

          常用鏈接

          留言簿(6)

          隨筆分類(lèi)

          隨筆檔案

          文章分類(lèi)

          文章檔案

          相冊(cè)

          EJB學(xué)習(xí)

          Flex學(xué)習(xí)

          learn English

          oracle

          spring MVC web service

          SQL

          Struts

          生活保健

          解析文件

          搜索

          最新評(píng)論

          閱讀排行榜

          評(píng)論排行榜

          主站蜘蛛池模板: 临清市| 白沙| 东光县| 黄冈市| 长丰县| 南投市| 个旧市| 绥江县| 孝义市| 伊宁县| 富源县| 秦皇岛市| 合山市| 安泽县| 沈阳市| 正阳县| 习水县| 电白县| 景东| 微博| 永嘉县| 三河市| 麻栗坡县| 彭阳县| 万盛区| 云和县| 普兰店市| 大港区| 谢通门县| 即墨市| 七台河市| 信丰县| 抚宁县| 芦山县| 含山县| 饶阳县| 淅川县| 剑川县| 黔东| 淮北市| 云浮市|