【发布时间】:2023-01-12 00:19:39
【问题描述】:
我正在尝试为每个人创建一行,str 但我得到了额外的输出。
有人可以解释我做错了什么并告诉我如何解决它。
下面是我的测试案例和预期结果。感谢所有回答的人和您的专业知识。
with rws as (
select 'Bob' person, 'AB,CR,DE' str from dual UNION ALL
select 'Jane' person, 'AB' str from dual
)
select person,
regexp_substr (
str,
'[^,]+',
1,
level
) value
from rws
connect by level <=
length ( str ) - length ( replace ( str, ',' ) ) + 1
ORDER BY person, str;
PERSON VALUE
Bob AB
Bob CR
Bob DE
Bob DE
Bob CR
Jane AB
Expected results
PERSON VALUE
Bob AB
Bob CR
Bob DE
Jane AB
【问题讨论】: