I managed to copy the nested cursor ... It looks like it works.
declare o CURSOR FAST_FORWARD FOR select comments from EVENT declare @comment nvarchar(max) OPEN o FETCH NEXT FROM o into @comment while @@FETCH_STATUS = 0 BEGIN Declare @item nvarchar(750) declare @tbl Table(Category nvarchar(250), Description nvarchar(250), Quantity nvarchar(250), Value DECIMAL(10,2)) declare c CURSOR FAST_FORWARD FOR SELECT items FROM dbo.Split(@comment, Char(10)) OPEN c FETCH NEXT FROM c into @item WHILE @@FETCH_STATUS = 0 BEGIN set @item = @item + ':' insert into @tbl Values (LTRIM(RTRIM(SUBSTRING(@item, 1, CHARINDEX(' - ', @item) - 1))), CASE when @item like '%D:%' Then LTRIM(RTRIM(SUBSTRING(@item, CHARINDEX('D:', @item) + 2, CHARINDEX(':', @item, CHARINDEX('D:', @item)+2) - CHARINDEX('D:', @item) - 3))) else '' end, CASE when @item like '%Q:%' Then LTRIM(RTRIM(SUBSTRING(@item, CHARINDEX('Q:', @item) + 2, CHARINDEX(':', @item, CHARINDEX('Q:', @item)+2) - CHARINDEX('Q:', @item) - 3))) else '1' end, CASE when @item like '%V:%' Then CONVERT(DECIMAL(10,2),dbo.RemoveNonNumericCharacters(LTRIM(RTRIM(SUBSTRING(@item, CHARINDEX('V:', @item) + 2, CHARINDEX(':', @item, CHARINDEX('V:', @item)+2) - CHARINDEX('V:', @item) - 3))))) else 0 end) FETCH NEXT FROM c into @item END CLOSE c DEALLOCATE c END CLOSE o DEALLOCATE o SELECT * FROM @tbl
source share