• No real need for dbo.DelimitedSplit8K here if you only expect maximum two parts (left and right). The following will work a bit faster (please note extended sample data):

    IF OBJECT_ID('tempdb..#TempTable') IS NOT NULL

    DROP TABLE #TempTable

    CREATE TABLE #TempTable (

    [ID] INT IDENTITY(1,1) NOT NULL,

    [DString] NVARCHAR(255) NULL,

    PRIMARY KEY (ID))

    INSERT INTO #TempTable

    SELECT '0111~Apple' UNION ALL

    SELECT '02222~Banana' UNION ALL

    SELECT '033333~Carrot' UNION ALL

    SELECT '044444~Danish' UNION ALL

    SELECT '0555555~Eclair' UNION ALL

    SELECT '000 NO TILDA' UNION ALL

    SELECT NULL

    SELECT

    ID

    ,DString

    ,LEFT(DString, tld.ix - 1) AS

    ,SUBSTRING(DString, tld.ix + 1, 8000) AS

    FROM

    #TempTable AS tt

    CROSS APPLY (SELECT NULLIF(CHARINDEX('~',tt.DString),0)) tld(ix)

    _____________________________________________
    "The only true wisdom is in knowing you know nothing"
    "O skol'ko nam otkrytiy chudnyh prevnosit microsofta duh!":-D
    (So many miracle inventions provided by MS to us...)

    How to post your question to get the best and quick help[/url]