1. 程式人生 > >將用逗號分隔的字串欄位轉為對應的多行資料

將用逗號分隔的字串欄位轉為對應的多行資料

  今天處理的是個故障表資訊.內容如下:

                    故障工單號                                                                           影響小區

                     ID-1                                                                                      A小區,B小區,東小區

因為要與小區表匹配,故想將影響小區拆開,拆開後內容如下:

                     ID-1                                                                                      A小區

     ID-1                                                                                   B小區

                     ID-1                                                                                     東小區

然後一番搗鼓之後,初步的實現了效果.

select REGEXP_SUBSTR(a.AffectedCellName, '[^,]+', 1, l) VILLAGENAME,a.*
             from (select AffectedCellName, netname, inc_ne_name, basesn,BASESTATUS
                                  FROM WF_BMCC_EOMS_ITDEALFAULT TT
                                 WHERE 1 = 1  
                       ) a,
                  (SELECT LEVEL l FROM DUAL CONNECT BY LEVEL <= 100) b
            WHERE l <= LENGTH(a.AffectedCellName) -LENGTH(REPLACE(AffectedCellName, ',')) + 1

ps :100是寫死了的,這裡不知道該怎麼弄