• CREATE FUNCTION [dbo].[Split](@data VARCHAR(MAX), @delimiter VARCHAR(20))

    RETURNS @t TABLE (Element VARCHAR(MAX))

    AS

    BEGIN

    DECLARE @textXML XML

    SET @textXML = CAST('<d>' + REPLACE(REPLACE(REPLACE(@data,'&','~~amper~~'),'<','~~lt~~'), @delimiter, '</d><d>') + '</d>' AS XML)

    INSERT INTO @t(element)

    SELECT REPLACE(REPLACE(T.split.value('.', 'varchar(max)'),'~~amper~~','&'), '~~lt~~','<') AS data

    FROM @textXML.nodes('/d') T(split)

    RETURN

    END