• 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 '0222~Banana' UNION ALL

    SELECT '0333~Carrot' UNION ALL

    SELECT '0444~Danish' UNION ALL

    SELECT '0555~Eclair'

    SELECT

    ID

    ,DString

    ,dsk1.Item AS Code

    ,dsk2.Item AS Item

    FROM

    #TempTable AS tt

    CROSS APPLY

    dbo.DelimitedSplit8K(tt.DString,'~') AS dsk1

    CROSS APPLY

    dbo.DelimitedSplit8K(tt.DString,'~') AS dsk2

    WHERE

    dsk1.ItemNumber = 1

    AND dsk2.ItemNumber = 2

    OUTPUT

    IDDStringCodeItem

    10111~Apple0111Apple

    20222~Banana0222Banana

    30333~Carrot0333Carrot

    40444~Danish0444Danish

    50555~Eclair0555Eclair

    OR AS XML

    <?xml version="1.0" ?>

    <RESULTS1>

    <RECORD>

    <ID>1</ID>

    <DString>0111~Apple</DString>

    <Code>0111</Code>

    <Item>Apple</Item>

    </RECORD>

    <RECORD>

    <ID>2</ID>

    <DString>0222~Banana</DString>

    <Code>0222</Code>

    <Item>Banana</Item>

    </RECORD>

    <RECORD>

    <ID>3</ID>

    <DString>0333~Carrot</DString>

    <Code>0333</Code>

    <Item>Carrot</Item>

    </RECORD>

    <RECORD>

    <ID>4</ID>

    <DString>0444~Danish</DString>

    <Code>0444</Code>

    <Item>Danish</Item>

    </RECORD>

    <RECORD>

    <ID>5</ID>

    <DString>0555~Eclair</DString>

    <Code>0555</Code>

    <Item>Eclair</Item>

    </RECORD>

    </RESULTS1>