不用substr_index函数,sql怎么凭借分隔符提取字符串
时间: 2024-02-24 20:59:00 浏览: 17
除了使用`substring_index()`函数之外,你也可以使用其他一些 SQL 函数来提取字符串中的子字符串,例如`substring()`、`instr()`和`replace()`函数等。以下是一个使用这些函数来提取字符串的示例:
假设有一个字符串 `str`,其格式为 `prefix_suffix`,其中 `prefix` 是一个固定的字符串,`suffix` 是一个不固定的字符串,由分隔符 `_` 定界。你可以使用以下语句来提取 `suffix`:
```
SELECT SUBSTRING(str, LENGTH('prefix') + 2) AS suffix;
```
这条语句会返回 `str` 中 `prefix` 右侧的所有字符,即 `suffix`。其中,`LENGTH('prefix')` 表示 `prefix` 的长度,`+ 2` 表示 `_` 的长度。
你也可以使用`instr()`函数来查找 `_` 的位置,然后使用`substring()`函数来提取子字符串。例如:
```
SELECT SUBSTRING(str, INSTR(str, '_') + 1) AS suffix;
```
这条语句会返回 `str` 中第一个 `_` 右侧的所有字符,即 `suffix`。其中,`INSTR(str, '_')` 表示 `_` 在 `str` 中的位置。
如果你想要将 `_` 替换为其他分隔符,你可以使用`replace()`函数来实现。例如:
```
SELECT REPLACE(str, '_', '-') AS new_str;
```
这条语句会将 `str` 中的所有 `_` 替换为 `-`,并返回结果字符串 `new_str`。