新的起點 新的開始

          快樂生活 !

          列轉行 聚合的簡單實現 ORACLE WM_CONCAT LISTAGG 函數

          項目中有個需求,將關聯出來的數據以特定的字段將其他某一自動聚合。例子如下:

           

          1    B1
          1    B2
          1    B3
          2    B4
          2    B5
          3    B6

          to

           


          1    B1,B2,B3
          2    B4,B5
          3    B6

           

            拿到手就想到用存儲過程,其實還有更簡單的方式。那就是oracle 提供的字符串聚合函數。

           

          WM_CONCAT Built-in Function (Not Supported)

          If you are not running 11g Release 2, but are running a version of the database where the WM_CONCAT function is present, then it is a zero effort solution as it performs the aggregation for you. It is actually an example of a user defined aggregate function described below, but Oracle have done all the work for you.

           

          LISTAGG Analystic Function in 11g Release 2

          The LISTAGG analytic function was introduced in Oracle 11g Release 2, making it very easy to aggregate strings. The nice thing about this function is it also allows us to order the elements in the concatenated list. If you are using 11g Release 2 you should use this function for string aggregation.

           

          Example 如下:


          CREATE TABLE  "TESTAGG"
            (
              "A" VARCHAR2(20 BYTE),
              "B" VARCHAR2(20 BYTE)
            )


          INSERT INTO "TESTAGG" (A, B) VALUES ('1', 'B1')
          INSERT INTO "TESTAGG" (A, B) VALUES ('1', 'B2')
          INSERT INTO "TESTAGG" (A, B) VALUES ('1', 'B3')
          INSERT INTO "TESTAGG" (A, B) VALUES ('2', 'B4')
          INSERT INTO "TESTAGG" (A, B) VALUES ('2', 'B5')
          INSERT INTO "TESTAGG" (A, B) VALUES ('3', 'B6')

          select * from testAgg

          1    B1
          1    B2
          1    B3
          2    B4
          2    B5
          3    B6

          select  a  ,wm_concat (b) as policinams from testagg  group by a order by a

          select  a ,LISTAGG(b,',' ) within group(order by a) as b from testagg group by

          1    B1,B2,B3
          2    B4,B5
          3    B6

          posted on 2012-09-26 22:40 advincenting 閱讀(2500) 評論(0)  編輯  收藏 所屬分類: 數據庫相關

          公告

          Locations of visitors to this pageBlogJava
        1. 首頁
        2. 新隨筆
        3. 聯系
        4. 聚合
        5. 管理
        6. <2012年9月>
          2627282930311
          2345678
          9101112131415
          16171819202122
          23242526272829
          30123456

          統計

          常用鏈接

          留言簿(13)

          隨筆分類(71)

          隨筆檔案(179)

          文章檔案(13)

          新聞分類

          IT人的英語學習網站

          JAVA站點

          優秀個人博客鏈接

          官網學習站點

          生活工作站點

          最新隨筆

          搜索

          積分與排名

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 江永县| 亳州市| 崇义县| 宜黄县| 铜川市| 伊宁市| 库尔勒市| 苏尼特右旗| 鹤壁市| 昌图县| 冕宁县| 永定县| 正定县| 耒阳市| 体育| 错那县| 绍兴县| 揭西县| 盘锦市| 宁陵县| 穆棱市| 沛县| 绿春县| 卓尼县| 南皮县| 北票市| 汾阳市| 东方市| 贞丰县| 兰州市| 定日县| 镇雄县| 安多县| 东莞市| 茶陵县| 丰城市| 南和县| 全州县| 永兴县| 海林市| 秦安县|