老版本的sql怎么实现字符串分割
时间: 2024-03-28 15:37:56 浏览: 67
在老版本的 SQL 中,可以使用一些字符串函数来实现字符串分割,如SUBSTRING、CHARINDEX、LEN等。具体实现方法如下:
假设有一个字符串 'A,B,C,D,E',需要将其分割成单个字符。
1. 使用SUBSTRING函数和循环实现:
DECLARE @String VARCHAR(100) = 'A,B,C,D,E'
DECLARE @Delimiter CHAR(1) = ','
DECLARE @Position INT
WHILE CHARINDEX(@Delimiter, @String) > 0
BEGIN
SELECT @Position = CHARINDEX(@Delimiter, @String)
SELECT SUBSTRING(@String, 1, @Position - 1) AS Part
SELECT @String = SUBSTRING(@String, @Position + 1, LEN(@String))
END
SELECT @String AS Part
2. 使用XML和STUFF函数实现:
DECLARE @String VARCHAR(100) = 'A,B,C,D,E'
DECLARE @Delimiter CHAR(1) = ','
SELECT CAST('<X>'+REPLACE(@String,@Delimiter,'</X><X>')+'</X>' AS XML).value('/X[1]','varchar(max)') AS Part
SELECT STUFF((SELECT ','+value FROM (SELECT CAST('<X>'+REPLACE(@String,@Delimiter,'</X><X>')+'</X>' AS XML).value('/X[1]','varchar(max)') AS value) AS T FOR XML PATH('')),1,1,'') AS Part
这两种方法的实现原理都是将原字符串中的分隔符替换成XML标签,然后通过解析XML来获取分割后的字符串部分。
阅读全文