1. 程式人生 > >oracle 字符串 正則表達式 拆分,排序,合並

oracle 字符串 正則表達式 拆分,排序,合並

函數 sele 合並 pla 2.3 cor || lac 繼續

需求,表數據如:要求圈中的數據,必須根據線芯有序排列。

技術分享圖片

思路: 1、首先根據分號分隔元素。oracle 很蛋疼,沒有提供字符串分隔函數,網上倒是多覺得有點麻煩,耐著性子繼續網上找了下,還真讓我找到一篇博客,那已是年前了。今天找了一片還沒找到。

      如:避免了oracle 的定義參數類型,字符串分隔函數。

      技術分享圖片

2、元素排序這個大家都懂。

  3、合並,這個用的是 wm_concat 函數,11g後才有 

最終效果:

  技術分享圖片

技術分享圖片

sql:

SELECT
    wm_concat(core_idf || ‘;‘)
FROM
    (
        SELECT
            core_idf
        FROM
            (
                SELECT
                    regexp_substr(‘紅:6.28,;黃:5.30,;藍:2.30,;‘, ‘[^;]+‘, 1, ROWNUM) AS core_idf
                FROM
                    dual
                CONNECT BY
                    ROWNUM <= length(regexp_replace(‘紅:6.28,;黃:5.30,;藍:2.30,;‘, ‘[^;]‘, NULL))
            ) temp
        ORDER BY
            core_idf
    );

oracle 字符串 正則表達式 拆分,排序,合並