如何在SQL Server2012中用一条查询语句将字符串‘B4K270761/B4K270762’以‘/’ 为分割成两条B4K270761 和B4K270762
时间: 2024-12-24 13:24:51 浏览: 9
在 SQL Server 2012 中,你可以使用 `STRING_SPLIT` 函数来根据特定字符分割字符串。这个函数从 SQL Server 2016 开始引入,如果你的环境支持,可以这样做:
```sql
DECLARE @input VARCHAR(50) = 'B4K270761/B4K270762';
SELECT value
FROM STRING_SPLIT(@input, '/');
```
这将返回两个结果行,每一行都是原字符串的一个部分:B4K270761 和 B4K270762。
然而,如果你的版本低于 2016 并且需要兼容旧版本,你可以使用自定义的递归 CTE(Common Table Expression)来达到类似效果:
```sql
WITH SplitStrings (value, index) AS (
SELECT value = SUBSTRING(@input, 0, CHARINDEX('/', @input)), index = 0
UNION ALL
SELECT value = SUBSTRING(@input, index + LEN(value) + 1, CHARINDEX('/', @input) - index - LEN(value) - 1),
index = index + LEN(value) + 1
FROM SplitStrings
WHERE CHARINDEX('/', @input) > index
)
SELECT value
FROM SplitStrings;
```
这条查询会按需拆分字符串并逐段返回结果。
阅读全文