• Here is the formatted (in the way I like) code:

    DECLARE @Text NVARCHAR(500)

    DECLARE @StringDelimiter CHAR

    SELECT @Text = 'This t-sql will split these sentences into rows.' +

    'How many rows will be returned?.' +

    'M.a.y.b.e..n.o.n.e.?',

    @StringDelimiter = '.'

    ;WITH Tally(Number) AS

    (

    SELECT ROW_NUMBER() OVER (ORDER BY (SELECT NULL)) AS Number

    UNION ALL

    SELECT Number + 1 AS Number

    FROM Tally

    WHERE Number <= LEN(@Text)

    )

    SELECT

    CASE

    WHEN RIGHT

    ( LEFT(@Text, Number),

    CASE

    WHEN CHARINDEX(@StringDelimiter, REVERSE(LEFT(@Text, Number - 1)), 0) > 0

    THEN CHARINDEX(@StringDelimiter, REVERSE(LEFT(@Text, Number - 1)), 0) - 1

    ELSE CHARINDEX(@StringDelimiter, REVERSE(LEFT(@Text, Number - 1)), 0)

    END

    ) = ''

    AND

    CHARINDEX(@StringDelimiter, REVERSE(LEFT(@Text, Number - 1))) = 0

    THEN LEFT (@Text, Number - 1)

    ELSE

    RIGHT

    ( LEFT(@Text, Number - 1),

    CASE

    WHEN CHARINDEX(@StringDelimiter, REVERSE(LEFT(@Text, Number - 1)), 0) > 0

    THEN CHARINDEX(@StringDelimiter, REVERSE(LEFT(@Text, Number - 1)), 0) - 1

    ELSE CHARINDEX(@STringDelimiter, REVERSE(LEFT(@Text, Number - 1)), 0)

    END

    )

    END AS SPLIT

    FROM Tally

    WHERE (NCHAR(UNICODE(SUBSTRING(@Text, Number, 1))) = @StringDelimiter

    OR Number - 1 = LEN(@Text))

    OPTION(MAXRECURSION 32767);