【发布时间】:2016-04-22 04:34:23
【问题描述】:
我必须将一列拆分为多行。该列存储字符串,我们必须根据'/n'分割分隔符
已编写以下查询。但无法指定^[/n]。字符串中的另一个 'n' 也将被删除。请帮忙解析字符串
WITH sample AS
( SELECT 101 AS id,
'Name' test,
'3243243242342342/n12131212312/n123131232/n' as attribute_1,
'test value/nneenu not/nhoney' as attribute_2
FROM DUAL
)
-- end of sample data
SELECT id,
test,
regexp_substr(attribute_1,'[^/n]+', 1, column_value),
regexp_substr(attribute_2,'[^/]+', 1, column_value)
FROM sample,
TABLE(
CAST(
MULTISET(SELECT LEVEL
FROM dual
CONNECT BY LEVEL <= LENGTH(attribute_1) - LENGTH(replace(attribute_1, '/n')) + 1
) AS sys.OdciNumberList
)
)
WHERE regexp_substr(attribute_1,'[^/n]+', 1, column_value) IS NOT NULL
/
【问题讨论】:
-
你需要拆分字符串'/n'还是你的意思是换行?
-
嗨,我想你需要使用 [[:cntrl:]] 类
-
和 '[^/n]+' 在语法上也不好,