1. 程式人生 > >oracle sql 分割某個欄位中用逗號隔開的資料為行

oracle sql 分割某個欄位中用逗號隔開的資料為行

select regexp_substr(q.nums, '[^,]+', 1, rownum,'i'), names
  from (select '1,2,3' nums, '張三' names from dual) q
connect by rownum <= LENGTH(q.nums) - LENGTH(REGEXP_REPLACE(q.nums, ',', '')) + 1;

分割字串中所有的逗號,然後成多行
引數說明,
引數1: 待分割字串
引數2:正則表示式
引數3:起始位置,從第幾個字元開始正則表示式匹配(預設為1)
引數4:標識第幾個匹配組,預設為1

引數5:模式('i'不區分大小寫進行檢索;'c'區分大小寫進行檢索。預設為'c'。)