MSSQL实现字符串拆分的有效方法(mssql 拆分字符串)

MSSQL实现字符串拆分的有效方法

多个值之间以逗号分隔的字符串是非常常见的,但有时需要将这种拆分字符串拆分成单独的值。在MSSQL(Microsoft SQL Server)中,实现字符串拆分的有效方法有很多,下面就介绍其中的几种。

首先,我们可以使用WHILE循环来拆分字符串,它会逐个地对字符串中的每个值进行处理,完成字符串拆分。代码如下:

“`sql

DECLARE @String NVARCHAR(MAX) = ‘a,b,c,d’

DECLARE @SplitedString NVARCHAR(MAX)

SET @SplitedString = ‘ ‘

WHILE CHARINDEX(‘,’, @String) > 0

BEGIN

SET @SplitedString = @SplitedString +

SUBSTRING(@String, 1, CHARINDEX(‘,’, @String)) + ‘ ‘

SET @String = SUBSTRING(@String, CHARINDEX(‘,’, @String) + 1, LEN(@String))

END

SET @SplitedString = @SplitedString + @String

SELECT @SplitedString

“`

其次,还可以使用XML PATH语句来实现字符串拆分,代码如下:

“`sql

DECLARE @String NVARCHAR(MAX) = ‘a,b,c,d’

SELECT

Item

FROM

( SELECT A.Item.value(‘.[1]’,’varchar(20)’) Item

FROM (SELECT CAST(‘‘+ REPLACE(@String,’,’,’‘)+’‘ AS XML) AS A ) B

) AA


最后,还可以使用MSSQL自定义函数STRING_SPLIT来拆分字符串,示例如下:

```sql
DECLARE @String NVARCHAR(MAX) = 'a,b,c,d'
SELECT value
FROM STRING_SPLIT(@String, ',')

以上三种方法都可以用来快速有效地实现MSSQL中字符串的拆分,可以根据具体的需求来选择合适的方法。


数据运维技术 » MSSQL实现字符串拆分的有效方法(mssql 拆分字符串)