--Crear primero la funcion fnSplit create FUNCTION dbo.fnSplit( @sInputList VARCHAR(8000) -- List of delimited items , @sDelimiter VARCHAR(8000) = ',' -- delimiter that separates items ) RETURNS @List TABLE (item VARCHAR(8000)) BEGIN DECLARE @sItem VARCHAR(8000) WHILE CHARINDEX(@sDelimiter,@sInputList,0) <> 0 BEGIN SELECT @sItem=RTRIM(LTRIM(SUBSTRING(@sInputList,1,CHARINDEX(@sDelimiter,@sInputList,0)-1))), @sInputList=RTRIM(LTRIM(SUBSTRING(@sInputList,CHARINDEX(@sDelimiter,@sInputList,0)+
LEN(@sDelimiter),LEN(@sInputList)))) /*IF LEN(@sItem) > 0 -- INSERT INTO @List SELECT @sItem */ END --esta parte inserta solo el segundo valor del split IF LEN(@sInputList) > 0 INSERT INTO @List SELECT @sInputList -- Put the last item in RETURN END GO -- tabla auxiliar para obtener los valores drop table #tmp CREATE TABLE #tmp(item varchar(1000)) declare @PROFESOR varchar(2000) --declaramos el Cursor para la consulta, este cursor nos permitira recorrer las filas de la tabla. DECLARE TODOS CURSOR FOR select aux.TransactionsResponseRequestResult from ( select p.* from transactions t inner join TransactionsRequest q on t.TransactionsID = q.TransactionsID left join TransactionsResponse p on t.TransactionsID = p.TransactionsID left join ProcessorsResponse x on p.ProcessorsResponseID = x.ProcessorsResponseID where q.AccountsID = 77 and TransactionsDate >=GETDATE()-30 ) as aux --de aux seleccionamos el campo a tratar
--esta parte inserta solo el segundo valor del split
/*Abrimos el cursor*/ OPEN TODOS /*Extraemos el Primer registo*/ FETCH NEXT FROM TODOS INTO @PROFESOR /* imprimimos todos los registros mientras la variable @@FETCH_STATUS sea igual a 0*/ WHILE @@FETCH_STATUS = 0 BEGIN insert into #tmp (item) values ((select * from fnSplit(@PROFESOR,'&DS_ERROR_ID=')) )
/*Abrimos el cursor*/
--insertamos los valores a los que se les hizo el split, en la tabla temporar/*Nos Movemos al siguiente registro*/ FETCH NEXT FROM TODOS INTO @PROFESOR END /*cerramos el cursor*/ CLOSE TODOS DEALLOCATE TODOS select * from #tmp
Este seria el resultado de ejecutar el codigo
Fernando Lugão Veltem edited Original. Comment: added es-es on title and tags