我的记录如下:
Item | Color Code
Bag | 1,2,3
如何将这些记录转换为:
Item | Color Code
Bag | 1
Bag | 2
Bag | 3
在SQL级别,没有任何新程序的干预。
构建没有此格式数据的包和多维数据集时遇到问题
答案 0 :(得分:0)
这将有效
with t1(Item,ColorCode) as
(select 'Bag', '1,2,3' from dual)
select Item,regexp_substr(ColorCode, '[^,]+', 1, level) result
from t1
connect by level <= length(regexp_replace(ColorCode, '[^,]+')) + 1;
答案 1 :(得分:0)
试试这个:
SELECT t.Item,
trim(regexp_substr(t.ColorCode, '[^,]+', 1, lines.column_value)) ColorCode
FROM t,
TABLE (CAST (MULTISET
(SELECT LEVEL FROM dual CONNECT BY LEVEL <= regexp_count(t.ColorCode, ',')+1)
AS sys.odciNumberList
)
) lines
<强> SQL FIDDLE DEMO 强>