欧美三区_成人在线免费观看视频_欧美极品少妇xxxxⅹ免费视频_a级毛片免费播放_鲁一鲁中文字幕久久_亚洲一级特黄

Oracle 10g WM_CONCAT行轉(zhuǎn)列函數(shù)用法及注意點(diǎn)

系統(tǒng) 2938 0

?

WM_CONCAT(colName)為Oracle 10g中行數(shù)據(jù)轉(zhuǎn)列數(shù)據(jù)的內(nèi)置函數(shù),執(zhí)行效果如下

表T

      
           A    B

------------

   
      
      1    2

   1    3

   1    4

   2    1

   2    3
    

執(zhí)行語句 :

      
        SELECT
      
       A, WM_CONCAT(B) B 
      
        FROM
      
       T 
      
        GROUP
      
      
        BY
      
       A
    

執(zhí)行結(jié)果:

      
           A    B

---------------

   
      
      1    2,3,4

   2    1,3
    

?

注意:

  當(dāng)在包體內(nèi)使用行轉(zhuǎn)列時(shí),WM_CONCAT(colName)可以使用,但WM_CONCAT(DISTINCT?colName)會(huì)在包編譯時(shí)會(huì)報(bào)錯(cuò),

  例如,在某一包的某一存儲過程中有如下語句:

      
         1
      
      
        UPDATE
      
      
         D_LOWAREA L


      
      
         2
      
      
        SET
      
       L.BYQXH 
      
        =
      
       (
      
        SELECT
      
      
        /*
      
      
        +index(b)
      
      
        */
      
      
         3
      
                          WM_CONCAT(
      
        DISTINCT
      
      
         XH.XHMC)


      
      
         4
      
      
        FROM
      
      
         OLIVE.OL$_ASSOCIATIONS A,


      
      
         5
      
      
                                 PMSBI.F_SB_SBXX_BASIC  B,


      
      
         6
      
      
                                 PMSBI.D_XH             XH


      
      
         7
      
      
        WHERE
      
       A.A 
      
        IN
      
      
         (L.PDBYQ1, L.PDBYQ2, L.PDBYQ3)


      
      
         8
      
      
        AND
      
       A.B 
      
        =
      
      
         B.SBBH


      
      
         9
      
      
        AND
      
       B.XHDM 
      
        !=
      
      
        '
      
      
        wz
      
      
        '
      
      
        10
      
      
        AND
      
       B.XHDM 
      
        =
      
      
         XH.XHDM);


      
      
        11
      
      
        COMMIT
      
      ;
    

?

? ? ? 編譯時(shí)會(huì)報(bào)如下錯(cuò)誤:

? ? ?PL/SQL:ORA-30482:DISTINCT option not allowed for this function.

?

解決方案:

  使用動(dòng)態(tài)SQL(字符串中有單引號由兩個(gè)單引號表示):

      
         1
      
      
        EXECUTE
      
      
         IMMEDIATE 


      
      
         2
      
      
        '
      
      
        UPDATE D_LOWAREA L


      
      
         3
      
      
              SET L.BYQXH = (SELECT /*+index(b)*/


      
      
         4
      
      
                              WMSYS.WM_CONCAT(DISTINCT XH.XHMC)


      
      
         5
      
      
                               FROM OLIVE.OL$_ASSOCIATIONS A,


      
      
         6
      
      
                                    PMSBI.F_SB_SBXX_BASIC  B,


      
      
         7
      
      
                                    PMSBI.D_XH             XH


      
      
         8
      
      
                              WHERE A.A IN (L.PDBYQ1, L.PDBYQ2, L.PDBYQ3)


      
      
         9
      
      
                                AND A.B = B.SBBH


      
      
        10
      
      
                                AND B.XHDM != 
      
      
        ''
      
      
        wz
      
      
        ''
      
      
        11
      
      
                                AND B.XHDM = XH.XHDM)
      
      
        '
      
      
        ;


      
      
        12
      
      
        COMMIT
      
      ;
    

?

PS:Oracle 11g以上版本可以用LISTAGG實(shí)現(xiàn)行轉(zhuǎn)列,寫法如下:

      
        SELECT
      
       A, LISTAGG(B, 
      
        '
      
      
        ,
      
      
        '
      
      ) WITHIN 
      
        GROUP
      
      (
      
        ORDER
      
      
        BY
      
       B) B 
      
        FROM
      
       T 
      
        GROUP BY
      
       A
    

?

Oracle 10g WM_CONCAT行轉(zhuǎn)列函數(shù)用法及注意點(diǎn)


更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯(lián)系: 360901061

您的支持是博主寫作最大的動(dòng)力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點(diǎn)擊下面給點(diǎn)支持吧,站長非常感激您!手機(jī)微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點(diǎn)擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動(dòng)力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會(huì)非常 感謝您的哦?。。?/p>

發(fā)表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 99久久精品国产免看国产一区 | 一区二区三区在线免费观看 | 日本久久综合视频 | 免费的黄色一级片 | 久久一本久综合久久爱 | 久久久www成人免费精品 | 日本一本久道 | 日韩中文字幕免费在线观看 | 欧美精品3atv一区二区三区 | 91天堂 | 爱福利视频导航 | 亚洲网站在线观看 | 一本大道久久a久久精二百 日韩三级中文 | 日韩一区中文字幕 | 狠狠色丁香婷婷综合橹不卡 | 91大神精品长腿在线观看网站 | 羞羞视频网站在线观看 | 日本阿v视频高清在线 | 国产精品欧美日韩 | 日韩精品视频一区二区三区 | 清纯唯美亚洲激情 | 国产不卡在线 | 91精品国产欧美一区二区 | 久久精品国产久精国产 | 久久精品二区亚洲w码 | 国产成年网站v片在线观看 中文字幕在线免费视频 | 欧美亚洲一区 | 色综合天天色综合 | 涩涩操| 久久久国产精品免费视频 | 91精品成人免费国产 | 亚洲精品美女视频 | 久久99热只有视精品6国产 | 亚洲日韩欧洲无码av夜夜摸 | 2022国产成人精彩在线视频 | 国产一区二区丁香婷婷 | 妞干在线 | 蜜臀在线视频 | 国产精品免费在线播放 | 欧美黑人玩白人巨大极品 | 久草草视频在线观看免费高清 |