提问人:Anisha S 提问时间:9/14/2023 最后编辑:LittlefootAnisha S 更新时间:9/14/2023 访问量:36
如何分离 ;在 Oracle 中加入多行 [重复]
How to separate ; into multiple rows in Oracle [duplicate]
问:
如何分离 ;在 Oracle 中加入多行 请在 Oracle 中编写查询
注意:分号应取自具有 3 或 4 个以上的输入表..最多可扩展到 n 个数字。我们不能假设它。它应该将分号分成多行
我有一张表格,如下所示。
输入:
编号 | 句 |
---|---|
1 | 几十万之后;年 - 一些句子;这句话/也许是我们最强的方式 |
2 | 虚拟文本块;出版和平面设计;填补页面中的空白;在实际单词之前/添加 |
输出应为:
编号 | 句 |
---|---|
1 | 几十万之后 |
1 | years - 一些句子 |
1 | 这句话/也许是我们最强的方式 |
2 | 虚拟文本块 |
2 | 出版和平面设计 |
2 | 填补页面空白 |
2 | 在实际单词之前/添加 |
任何帮助将不胜感激。
需要用 Oracle 编写的查询
答:
1赞
Littlefoot
9/14/2023
#1
下面是一个选项,用于示例数据
SQL> with test (id, sentence) as
2 (select 1, 'After hundreds of thousands;years - some sentence;the sentence/Perhaps our strongest way' from dual union all
3 select 2, 'dummy block of text;publishing and graphic design;fill gaps in the page;before the actual words / added' from dual
4 )
查询:
5 select id,
6 regexp_substr(sentence, '[^;]+', 1, column_value) sentence
7 from test cross join
8 table(cast(multiset(select level from dual
9 connect by level <= regexp_count(sentence, ';') + 1
10 ) as sys.odcinumberlist))
11 order by id, column_value;
ID SENTENCE
---------- ----------------------------------------------------------------------------------------------------
1 After hundreds of thousands
1 years - some sentence
1 the sentence/Perhaps our strongest way
2 dummy block of text
2 publishing and graphic design
2 fill gaps in the page
2 before the actual words / added
7 rows selected.
SQL>
评论