oracle根据指定字符拆分字符串,字符串长度不确定
时间: 2023-09-03 15:16:38 浏览: 251
字符串按特定字符拆分
如果您要根据指定字符拆分字符串,但是字符串长度不确定,您可以使用 Oracle 中的 `REGEXP_SUBSTR` 函数和正则表达式来实现。
以下是一个示例 SQL 查询,它可以将一个字符串按逗号分隔成多个子字符串。这个查询中使用了正则表达式,它会匹配所有不包含逗号的字符序列。您可以将逗号替换成其他分隔符来适应您的需求。
```
WITH data AS (
SELECT 'ABC,DEF,GHI' AS str FROM dual
)
SELECT
TRIM(REGEXP_SUBSTR(str, '[^,]+', 1, 1)) AS col1,
TRIM(REGEXP_SUBSTR(str, '[^,]+', 1, 2)) AS col2,
TRIM(REGEXP_SUBSTR(str, '[^,]+', 1, 3)) AS col3
FROM data;
```
上述查询将字符串 `ABC,DEF,GHI` 按逗号分隔成三个子字符串,分别为 `ABC`、`DEF` 和 `GHI`。如果您要拆分的字符串中包含空格或其他非打印字符,可以使用 `TRIM` 函数来去除这些字符。
如果您要将字符串按不同的分隔符拆分成多个子字符串,可以在正则表达式中使用 `|` 运算符,例如:`'[ ,;]+'` 匹配空格、逗号和分号。
阅读全文