转到多个记录

时间:2015-10-19 07:19:48

标签: sql oracle frameworks cube cognos

我的记录如下:

Item   | Color Code
Bag    | 1,2,3

如何将这些记录转换为:

Item   | Color Code
Bag    | 1
Bag    | 2
Bag    | 3

在SQL级别,没有任何新程序的干预。

构建没有此格式数据的包和多维数据集时遇到问题

2 个答案:

答案 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