我有一个具有以下结构的表:
create table student_info
(
item_number number,
st_firstname varchar2(50),
st_lastname varchar2(50),
st_score varchar2(50)
)
这是表的示例数据:
item_number | st_firstname | st_lastname | st_score
----------------------------------------------------------------------------
1 Ali|Reza|Pantea Hashemi|Nosrati|Yaghobi 10|20|20
2 Maryam|Ahmad Moghise|Majlesi 20|20
我需要有以下输出:
item_number | st_firstname | st_lastname | st_score
----------------------------------------------------------------------------
1 Ali Hashemi 10
1 Reza Nosrati 20
1 Pantea Yaghobi 20
2 Maryam Moghise 20
2 Ahmad Majlesi 20
我发现通过以下查询,我可以使用其中一列(即st_firstname
)做我想做的事:
select distinct t.item_number,
trim(regexp_substr(t.st_firstname, '[^|]+', 1, level)) str
from student_info t
connect by instr(st_firstname, '|', 1, level - 1) > 0
order by t.item_number
问题是我不知道如何将其他列(st_lastname,st_lastname)添加到上述查询中。我想知道你是否可以在这里帮助我。
提前致谢