Oracle 欄位值按逗號拆分,變為多行資料
阿新 • • 發佈:2019-01-06
select distinct * from ( select regexp_substr(q.nums, '[^,]+', 1, Level,'i') order_num, names from ( select '1,2,3' nums, '張三' names from dual union all select '4,5' nums, '李四' names from dual union all select '5,6' nums, '王五' names from dual ) q connect by Level <= LENGTH(q.nums) - LENGTH(REGEXP_REPLACE(q.nums, ',', '')) + 1) order by order_num;
- 業務:把nums按逗號拆分為多行。
- REGEXP_SUBSTR函式格式如下:
function REGEXP_SUBSTR(String, pattern, position, occurrence, modifier)
__srcstr :需要進行正則處理的字串
__pattern :進行匹配的正則表示式
__position :起始位置,從第幾個字元開始正則表示式匹配(預設為1)
__occurrence :標識第幾個匹配組,預設為1
__modifier :模式('i'不區分大小寫進行檢索;'c'區分大小寫進行檢索。預設為'c'。)