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来拆分字符串,示例如下:
```sqlDECLARE @String NVARCHAR(MAX) = 'a,b,c,d'
SELECT value FROM STRING_SPLIT(@String, ',')
以上三种方法都可以用来快速有效地实现MSSQL中字符串的拆分,可以根据具体的需求来选择合适的方法。