我有oracle拆分查询的问题.
在使用oracle查询中的connect by和regular expression将逗号分隔数据拆分为多行时,我获得了更多的重复行.例如,实际上我的表有150行,在那两行中有逗号分隔的字符串,所以整体上我只得到155行,但我得到2000行.如果我使用distinct其工作正常但我不想在查询结果中重复行.
我尝试了以下查询,但它在查询结果中生成重复的行:
WITH CTE AS (SELECT 'a,b,c,d,e' temp,1 slno FROM DUAL
UNION
SELECT 'f,g',2 from dual
UNION
SELECT 'h',3 FROM DUAL)
SELECT TRIM(REGEXP_SUBSTR( TEMP, '[^,]+', 1, LEVEL)) ,SLNO FROM CTE
CONNECT BY LEVEL <= LENGTH(REGEXP_REPLACE(temp, '[^,]+')) + 1
编辑
上面的select查询只能拆分单个逗号分隔的字符串,但是,当在具有多行的表上执行时,它会生成重复的行.如何限制重复的行?