一般的開發語言中,都有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