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)列的效果如下(或者類似的結(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)如下的查詢效果:列轉(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、集合查詢
          實(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)  編輯  收藏 所屬分類: 筆試題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)

          隨筆分類

          隨筆檔案

          文章分類

          文章檔案

          相冊(cè)

          EJB學(xué)習(xí)

          Flex學(xué)習(xí)

          learn English

          oracle

          spring MVC web service

          SQL

          Struts

          生活保健

          解析文件

          搜索

          最新評(píng)論

          閱讀排行榜

          評(píng)論排行榜

          主站蜘蛛池模板: 湖州市| 东辽县| 诸暨市| 汉中市| 确山县| 晋州市| 乐都县| 海宁市| 普宁市| 兴隆县| 许昌县| 凯里市| 凭祥市| 贵阳市| 共和县| 汶川县| 射洪县| 西峡县| 无为县| 杭锦后旗| 漠河县| 修水县| 突泉县| 丽江市| 珲春市| 高雄市| 隆昌县| 灵丘县| 独山县| 西青区| 尼玛县| 泊头市| 巩义市| 教育| 成武县| 怀集县| 马关县| 富民县| 永登县| 柏乡县| 历史|