• Or another (just for fun 😉 )

    WITH SampleData (ID, MyString) AS

    (

    SELECT 1, '1:1,3,5,7,4:56,43,58,5:34,67r,234'

    ),

    split AS

    (

    SELECT b.ItemNumber,b.Item

    FROM SampleData a

    CROSS APPLY dbo.DelimitedSplit8K(MyString, ',') b

    )

    SELECTLEFT(s2.Item,CHARINDEX(':',s2.Item)-1),

    CASE CHARINDEX(':', s1.Item) WHEN 0 THEN s1.Item ELSE SUBSTRING(s1.Item,CHARINDEX(':', s1.Item)+1,255) END

    FROMsplit s1

    CROSS APPLY (SELECT TOP 1 * FROM split WHERE ItemNumber < s1.ItemNumber AND Item LIKE '%:%' ORDER BY ItemNumber DESC) s2

    Really horrible looking execution plan though 😀

    Far away is close at hand in the images of elsewhere.
    Anon.