NerdishByNature

Eine MSSQL Split Funktion

Mal 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

ControlPopup, ein Silverlight Control

So, nu mal nen bissl Eigenwerbung. Ich habe es nach Monaten geschafft eines meiner Silverlight Controls Online und somit auch der Allgemeinheit zur Verfügung zu stellen.
Da ich das Control selbst produktiv benutze, wird es natürlich kontinuierlich weiterentwickelt. Ich würde mich aber über Feedback und Anregungen freuen und am meisten darüber, wenn mein Control auch verwendet wird ;)