SQL server如何多行 将逗号分隔的字符串进行分拆截取
时间: 2023-05-26 13:07:14 浏览: 119
oracle将以逗号分隔字符串转多行
有多种方法可以将逗号分隔的字符串进行分拆截取。以下是其中两种方法:
方法一:使用字符串分割函数
SQL Server 2016 及更高版本支持 STRING_SPLIT() 函数,可以将字符串分割成单个值,并返回一行结果集。例如:
```
SELECT value
FROM STRING_SPLIT('A,B,C,D', ',')
```
结果:
```
value
-----
A
B
C
D
```
方法二:使用XML表达式和节点方法
将逗号分隔的字符串包含在 `<root><item>...</item></root>` 的 XML 表达式中,然后使用节点方法进行分割。例如:
```
DECLARE @str NVARCHAR(MAX) = 'A,B,C,D'
SELECT n.value('.', 'varchar(10)') as value
FROM (SELECT CAST('<root><item>' + REPLACE(@str, ',', '</item><item>') + '</item></root>' as xml) as x) as t
CROSS APPLY x.nodes('/root/item') as q(n)
```
结果:
```
value
-----
A
B
C
D
```
阅读全文