SQLServer中使用Split功能分割字符串
一般的开发语言中,都有Split函数,可以将某个字符串按照分隔符进行分割,返回一个数组,非常方便。
但在SQLServer中,却没有默认提供Split函数,不过总有解决方案,以下是某大牛写的,比起网上的其他解决方案,思路很清晰,值得一看:
参考文章1:http://www.webtechminer.com/split-function-in-sql-server-to-break-comma-separated-string/
ALTER FUNCTION dbo.splitl ( @String VARCHAR(MAX), @Delimiter VARCHAR(MAX) ) RETURNS @temptable TABLE (items VARCHAR(MAX)) AS BEGIN DECLARE @idx INT=1 DECLARE @slice VARCHAR(MAX) IF LEN(@String) < 1 OR LEN(ISNULL(@String,'')) = 0 RETURN WHILE @idx != 0 BEGIN SET @idx = CHARINDEX(@Delimiter,@String)
IF @idx != 0 SET @slice = LEFT(@String,@idx - 1) ELSE SET @slice = @String
IF LEN(@slice) > 0 INSERT INTO @temptable(items) VALUES(@slice)
SET @String = RIGHT (@String, LEN(@String) - @idx)
IF LEN(@String) = 0 BREAK END RETURN END
参考文章2:https://my.oschina.net/cwalet/blog/267386