sql server分割字符串的各种方法示例
时间: 2024-09-30 07:15:31 浏览: 52
在SQL Server中,有几种常见的方法可以将字符串分割成一系列值。这里提供三种常用的字符串分割方法:
1. **`STRING_SPLIT` 函数** (从SQL Server 2016开始可用):
如果你正在处理新版本的SQL Server,可以使用内置的 `STRING_SPLIT` 函数,它将字符串按照指定分隔符拆分成行返回结果集。例如:
```sql
SELECT value
FROM STRING_SPLIT('value1,value2,value3', ',')
```
这将返回三行,每行是一个单独的值。
2. **`PATINDEX` 和 `SUBSTRING` 的组合**:
对于旧版本的SQL Server,可以使用 `PATINDEX` 找到每个分隔符的位置,然后用 `SUBSTRING` 从那个位置截取片段。比如:
```sql
DECLARE @str VARCHAR(100) = 'value1,value2,value3';
SELECT SUBSTRING(@str, 1, CHARINDEX(',', @str) - 1) AS value
UNION ALL
SELECT SUBSTRING(@str, CHARINDEX(',', @str) + 1, LEN(@str))
WHERE CHARINDEX(',', @str) > 0
```
这会逐个获取分隔后的值,直到遇到字符串结束。
3. **自定义递归查询**:
如果需要更复杂的分割逻辑,还可以创建一个自定义递归查询来解析。但这通常比较复杂,并不是标准的SQL操作。
阅读全文