我必须将列拆分为多行。该列存储字符串,并且我们必须根据'/n'
SQL基于分隔符将字段(字符串)拆分为多行的正则表达式'/ 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'还是你的意思是新行? – Aleksej
嗨,我想你需要使用[[:cntrl:]]类 – Thomas
和'[^/n] +'也没有语法好, – Thomas