gpt4 book ai didi

database - Oracle 将文本拆分为多行

转载 作者:搜寻专家 更新时间:2023-10-30 20:20:39 25 4
gpt4 key购买 nike

在 varchar2 列中,我有如下文本值:

aaaaaa. fgdfg.
bbbbbbbbbbbbbb ccccccccc
dddddd ddd dddddddddddd,
asdasdasdll
sssss

如果我从表中选择 id=... 的列,我通常会将整个文本放在一行中。但我想得到多行的结果,上面的例子是 5 行。我必须只使用一个 select 语句,分隔符将是换行符或回车符(oracle 中的 chr(10)、chr(13))

谢谢!

最佳答案

可能像这样(但这完全取决于您使用的 oracle 版本):

WITH yourtable AS    (SELECT REPLACE('aaaaaa. fgdfg.' ||chr(10)||           
'bbbbbbbbbbbbbb ccccccccc ' ||chr(13)||
'dddddd ddd dddddddddddd,' ||chr(10)||
'asdasdasdll ' ||chr(13)||
'sssss '||chr(10),chr(13),chr(10)) AS astr FROM DUAL)
SELECT REGEXP_SUBSTR ( astr, '[^' ||chr(10)||']+', 1, LEVEL) data FROM yourtable
CONNECT BY LEVEL <= LENGTH(astr) - LENGTH(REPLACE(astr, chr(10))) + 1

参见:Comma Separated values in Oracle

关于database - Oracle 将文本拆分为多行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7991196/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com