SQL server2016 根据/和#拆分字符串用XML 数据类型进行拆分
时间: 2024-03-01 09:52:43 浏览: 23
在 SQL Server 中,可以使用 XML 数据类型的 `nodes()` 方法来根据指定的分隔符拆分字符串。下面是一个使用 XML 数据类型进行字符串拆分的示例:
```
-- 根据 / 拆分字符串
DECLARE @str VARCHAR(MAX) = 'your/string/to/split'
DECLARE @xml XML = '<root><s>' + REPLACE(@str, '/', '</s><s>') + '</s></root>'
SELECT n.value('.', 'VARCHAR(MAX)') AS value
FROM @xml.nodes('/root/s') AS x(n)
-- 根据 # 拆分字符串
DECLARE @str VARCHAR(MAX) = 'your#string#to#split'
DECLARE @xml XML = '<root><s>' + REPLACE(@str, '#', '</s><s>') + '</s></root>'
SELECT n.value('.', 'VARCHAR(MAX)') AS value
FROM @xml.nodes('/root/s') AS x(n)
```
其中,`@str` 是需要拆分的字符串。首先,使用 `REPLACE()` 函数将字符串中的分隔符替换为 XML 标签 `</s><s>`,然后再将整个字符串包装在一个 XML 根元素 `<root>` 中。接着,使用 `nodes()` 方法和 XPath 表达式 `/root/s` 来获取每个标签 `<s>` 中的内容。最后,使用 `value()` 方法来获取每个标签中的文本内容。