Eine MSSQL Split Funktion
erstellt am: 06. Sep 2011 | Tags: Function, Microsoft, Split, SQLMal was anderes als Silverlight. Eine kleine Split-Funktion für den Microsoft SQL-Server, die einen String anhand eines Delimiters trennt und eine Tabelle zurück gibt. Und damit ich sie selbst nicht immer bei mir suchen muss hier und jetzt gepostet. Nicht zum ersten und wahrscheinlich auch nicht zum letzten mal zu finden in den unergründlichen Weiten des Internetz.
CREATE FUNCTION [dbo].[fn_Split](@text VARCHAR(8000), @delimiter VARCHAR(20) = ' ')
RETURNS @Strings TABLE
(
position INT IDENTITY PRIMARY KEY,
value VARCHAR(8000)
)
AS
BEGIN
DECLARE @index INT
SET @index = -1
--SET @text = REPLACE(RTRIM(LTRIM(@text)),' ', '')
WHILE (LEN(@text) > 0)
BEGIN
SET @index = CHARINDEX(@delimiter , @text)
IF (@index = 0) AND (LEN(@text) > 0)
BEGIN
INSERT INTO @Strings VALUES (@text)
BREAK
END
IF (@index > 1)
BEGIN
INSERT INTO @Strings VALUES (LEFT(@text, @index - 1))
SET @text = RIGHT(@text, (LEN(@text) - @index))
END
ELSE
SET @text = RIGHT(@text, (LEN(@text) - @index))
END
RETURN
END