Ver Mensaje Individual
  #1 (permalink)  
Antiguo 05/12/2013, 17:30
FDPolvo
 
Fecha de Ingreso: diciembre-2013
Mensajes: 8
Antigüedad: 10 años, 5 meses
Puntos: 0
Pregunta Validar registros duplicados de una columna, tomando varias posiciones de la cadena

Código SQL:
Ver original
  1. DECLARE @MATCHCODE  VARCHAR(50)
  2.        
  3. -- Declaración del cursor
  4. DECLARE cMATCHCODE CURSOR FOR
  5.     SELECT DISTINCT SUBSTRING(MATCHCODE,1,13) FROM PROCESO_TAB
  6.         WHERE SUBSTRING(MATCHCODE,1,13) IN
  7.         (SELECT SUBSTRING(MATCHCODE,1,13) FROM PROCESO_TAB AS DUPLICADO_13
  8.         GROUP BY SUBSTRING(MATCHCODE,1,13) HAVING COUNT(1) > 1 )
  9.         ORDER BY SUBSTRING(MATCHCODE,1,13)
  10.     FOR UPDATE
  11.  
  12. -- Apertura del cursor
  13. OPEN cMATCHCODE
  14.  
  15. -- Lectura de la primera fila del cursor
  16.     FETCH cMATCHCODE INTO @MATCHCODE
  17.  
  18.     WHILE (@@FETCH_STATUS = 0 )
  19.  
  20.     BEGIN
  21.         UPDATE PROCESO_TAB
  22.         SET M13 = 'S'
  23.         WHERE SUBSTRING(MATCHCODE,1,13) = @MATCHCODE
  24.  
  25.         -- Lectura de la siguiente fila del cursor
  26.         FETCH cMATCHCODE INTO @MATCHCODE
  27.     END
  28.  
  29.     BEGIN
  30.         UPDATE PROCESO_TAB
  31.         SET M13 = 'N'
  32.         WHERE SUBSTRING(MATCHCODE,1,13) <> @MATCHCODE
  33.  
  34.         -- Lectura de la siguiente fila del cursor
  35.         FETCH cMATCHCODE INTO @MATCHCODE
  36.     END
  37.  
  38. -- Cierre del cursor
  39. CLOSE cMATCHCODE
  40. -- Liberar los recursos
  41. DEALLOCATE cMATCHCODE

Última edición por gnzsoloyo; 05/12/2013 a las 17:59