Código SQL:
Ver originalDECLARE @MATCHCODE VARCHAR(50)
-- Declaración del cursor
DECLARE cMATCHCODE CURSOR FOR
SELECT DISTINCT SUBSTRING(MATCHCODE,1,13) FROM PROCESO_TAB
WHERE SUBSTRING(MATCHCODE,1,13) IN
(SELECT SUBSTRING(MATCHCODE,1,13) FROM PROCESO_TAB AS DUPLICADO_13
GROUP BY SUBSTRING(MATCHCODE,1,13) HAVING COUNT(1) > 1 )
ORDER BY SUBSTRING(MATCHCODE,1,13)
FOR UPDATE
-- Apertura del cursor
OPEN cMATCHCODE
-- Lectura de la primera fila del cursor
FETCH cMATCHCODE INTO @MATCHCODE
WHILE (@@FETCH_STATUS = 0 )
BEGIN
UPDATE PROCESO_TAB
SET M13 = 'S'
WHERE SUBSTRING(MATCHCODE,1,13) = @MATCHCODE
-- Lectura de la siguiente fila del cursor
FETCH cMATCHCODE INTO @MATCHCODE
END
BEGIN
UPDATE PROCESO_TAB
SET M13 = 'N'
WHERE SUBSTRING(MATCHCODE,1,13) <> @MATCHCODE
-- Lectura de la siguiente fila del cursor
FETCH cMATCHCODE INTO @MATCHCODE
END
-- Cierre del cursor
CLOSE cMATCHCODE
-- Liberar los recursos
DEALLOCATE cMATCHCODE