ALTER PROCEDURE ETL_PARSE_FULLNAME
AS
BEGIN
-- ==========================================================================================
-- Author: Netro
-- Create date: 2014-03-26
-- Description:
-- Proceso de mantenimiento de datos importados por el ETL. --
-- Actualizacion de nombres desde fullname desglozando nombre, aparterno, amaterno
-- ==========================================================================================
SET NOCOUNT ON;
--PASO PREVIO 1: GUARDAR DATO ORIGINAL
UPDATE TWCLIENTES_ATN SET NOMBREREP_CLI=NOMBRE_CLI WHERE APATERNO_CLI IS NULL AND AMATERNO_CLI IS NULL
--PASO PREVIO 2: NOMBRE_APELLIDO_APELLIDO--PASO PREVIO 1: ELIMINAR ESPACIOS INICIO/FINAL Y CONVERTIR A MAYUSCULAS
UPDATE TWCLIENTES_ATN SET NOMBRE_CLI = LTRIM(RTRIM(UPPER(NOMBRE_CLI)))
--PASO PREVIO 3: UNION DE LOS MODIFICADORES: DE, DEL, LA, LAS, LOS, A, SAN,
UPDATE TWCLIENTES_ATN SET NOMBRE_CLI = Replace(NOMBRE_CLI, ' LA ', ' LA_') WHERE APATERNO_CLI IS NULL AND CHARINDEX(' LA ', UPPER(NOMBRE_CLI)) > 0
UPDATE TWCLIENTES_ATN SET NOMBRE_CLI = Replace(NOMBRE_CLI, ' LAS ', ' LAS_') WHERE APATERNO_CLI IS NULL AND CHARINDEX(' LAS ', UPPER(NOMBRE_CLI)) > 0
UPDATE TWCLIENTES_ATN SET NOMBRE_CLI = Replace(NOMBRE_CLI, ' SAN ', ' SAN_') WHERE APATERNO_CLI IS NULL AND CHARINDEX(' SAN ', UPPER(NOMBRE_CLI)) > 0
UPDATE TWCLIENTES_ATN SET NOMBRE_CLI = Replace(NOMBRE_CLI, ' LOS ', ' LOS_') WHERE APATERNO_CLI IS NULL AND CHARINDEX(' LOS ', UPPER(NOMBRE_CLI)) > 0
UPDATE TWCLIENTES_ATN SET NOMBRE_CLI = Replace(NOMBRE_CLI, ' A ', ' A_') WHERE APATERNO_CLI IS NULL AND CHARINDEX(' A ', UPPER(NOMBRE_CLI)) > 0
UPDATE TWCLIENTES_ATN SET NOMBRE_CLI = Replace(NOMBRE_CLI, ' DEL ', ' DEL_') WHERE APATERNO_CLI IS NULL AND CHARINDEX(' DEL ', UPPER(NOMBRE_CLI)) > 0
UPDATE TWCLIENTES_ATN SET NOMBRE_CLI = Replace(NOMBRE_CLI, ' DE ', ' DE_') WHERE APATERNO_CLI IS NULL AND CHARINDEX(' DE ', UPPER(NOMBRE_CLI)) > 0
UPDATE TWCLIENTES_VTA SET NOMBRE_CLI = Replace(NOMBRE_CLI, ' LA ', ' LA_') WHERE APATERNO_CLI IS NULL AND CHARINDEX(' LA ', UPPER(NOMBRE_CLI)) > 0
UPDATE TWCLIENTES_VTA SET NOMBRE_CLI = Replace(NOMBRE_CLI, ' LAS ', ' LAS_') WHERE APATERNO_CLI IS NULL AND CHARINDEX(' LAS ', UPPER(NOMBRE_CLI)) > 0
UPDATE TWCLIENTES_VTA SET NOMBRE_CLI = Replace(NOMBRE_CLI, ' SAN ', ' SAN_') WHERE APATERNO_CLI IS NULL AND CHARINDEX(' SAN ', UPPER(NOMBRE_CLI)) > 0
UPDATE TWCLIENTES_VTA SET NOMBRE_CLI = Replace(NOMBRE_CLI, ' LOS ', ' LOS_') WHERE APATERNO_CLI IS NULL AND CHARINDEX(' LOS ', UPPER(NOMBRE_CLI)) > 0
UPDATE TWCLIENTES_VTA SET NOMBRE_CLI = Replace(NOMBRE_CLI, ' A ', ' A_') WHERE APATERNO_CLI IS NULL AND CHARINDEX(' A ', UPPER(NOMBRE_CLI)) > 0
UPDATE TWCLIENTES_VTA SET NOMBRE_CLI = Replace(NOMBRE_CLI, ' DEL ', ' DEL_') WHERE APATERNO_CLI IS NULL AND CHARINDEX(' DEL ', UPPER(NOMBRE_CLI)) > 0
UPDATE TWCLIENTES_VTA SET NOMBRE_CLI = Replace(NOMBRE_CLI, ' DE ', ' DE_') WHERE APATERNO_CLI IS NULL AND CHARINDEX(' DE ', UPPER(NOMBRE_CLI)) > 0
--CASO 1: NOMBRE_APELLIDO
UPDATE TWCLIENTES_ATN SET
NOMBRE_CLI =
RTRIM(SUBSTRING(NOMBRE_CLI, 1,CHARINDEX(' ', NOMBRE_CLI))),
APATERNO_CLI =
RTRIM(REVERSE(SUBSTRING(REVERSE(NOMBRE_CLI), 1,CHARINDEX(' ', REVERSE(NOMBRE_CLI)))))
WHERE APATERNO_CLI IS NULL
AND LEN(NOMBRE_CLI) - LEN(REPLACE(NOMBRE_CLI, ' ', '')) = 1
UPDATE TWCLIENTES_VTA SET
NOMBRE_CLI =
RTRIM(SUBSTRING(NOMBRE_CLI, 1,CHARINDEX(' ', NOMBRE_CLI))),
APATERNO_CLI =
RTRIM(REVERSE(SUBSTRING(REVERSE(NOMBRE_CLI), 1,CHARINDEX(' ', REVERSE(NOMBRE_CLI)))))
WHERE APATERNO_CLI IS NULL
AND LEN(NOMBRE_CLI) - LEN(REPLACE(NOMBRE_CLI, ' ', '')) = 1
--CASO 2: NOMBRE_APELLIDO_APELLIDO O MAS
UPDATE TWCLIENTES_ATN SET
NOMBRE_CLI =
RTRIM(SUBSTRING(RTRIM(SUBSTRING(NOMBRE_CLI,1,LEN(NOMBRE_CLI)-CHARINDEX(' ', REVERSE(NOMBRE_CLI)))),1,
LEN(RTRIM(SUBSTRING(NOMBRE_CLI,1,LEN(NOMBRE_CLI)-CHARINDEX(' ', REVERSE(NOMBRE_CLI)))))-
CHARINDEX(' ',REVERSE(
RTRIM(SUBSTRING(NOMBRE_CLI,1,LEN(NOMBRE_CLI)-CHARINDEX(' ', REVERSE(NOMBRE_CLI))))
)))),
APATERNO_CLI =
REVERSE(SUBSTRING(REVERSE(
RTRIM(SUBSTRING(NOMBRE_CLI,1,LEN(NOMBRE_CLI)-CHARINDEX(' ', REVERSE(NOMBRE_CLI))))
), 1,(CHARINDEX(' ', REVERSE(
RTRIM(SUBSTRING(NOMBRE_CLI,1,LEN(NOMBRE_CLI)-CHARINDEX(' ', REVERSE(NOMBRE_CLI))))
)) - 1))),
AMATERNO_CLI =
REVERSE(SUBSTRING(REVERSE(NOMBRE_CLI), 1,CHARINDEX(' ', REVERSE(NOMBRE_CLI)) - 1))
WHERE APATERNO_CLI IS NULL
AND LEN(NOMBRE_CLI) - LEN(REPLACE(NOMBRE_CLI, ' ', '')) > 1
UPDATE TWCLIENTES_VTA SET
NOMBRE_CLI =
RTRIM(SUBSTRING(RTRIM(SUBSTRING(NOMBRE_CLI,1,LEN(NOMBRE_CLI)-CHARINDEX(' ', REVERSE(NOMBRE_CLI)))),1,
LEN(RTRIM(SUBSTRING(NOMBRE_CLI,1,LEN(NOMBRE_CLI)-CHARINDEX(' ', REVERSE(NOMBRE_CLI)))))-
CHARINDEX(' ',REVERSE(
RTRIM(SUBSTRING(NOMBRE_CLI,1,LEN(NOMBRE_CLI)-CHARINDEX(' ', REVERSE(NOMBRE_CLI))))
)))),
APATERNO_CLI =
REVERSE(SUBSTRING(REVERSE(
RTRIM(SUBSTRING(NOMBRE_CLI,1,LEN(NOMBRE_CLI)-CHARINDEX(' ', REVERSE(NOMBRE_CLI))))
), 1,(CHARINDEX(' ', REVERSE(
RTRIM(SUBSTRING(NOMBRE_CLI,1,LEN(NOMBRE_CLI)-CHARINDEX(' ', REVERSE(NOMBRE_CLI))))
)) - 1))),
AMATERNO_CLI =
REVERSE(SUBSTRING(REVERSE(NOMBRE_CLI), 1,CHARINDEX(' ', REVERSE(NOMBRE_CLI)) - 1))
WHERE APATERNO_CLI IS NULL
AND LEN(NOMBRE_CLI) - LEN(REPLACE(NOMBRE_CLI, ' ', '')) > 1
--PASO POSTERIOR: ELIMINAR GUIONES
UPDATE TWCLIENTES_ATN SET
NOMBRE_CLI = REPLACE(NOMBRE_CLI,'_',' '),
APATERNO_CLI = REPLACE(APATERNO_CLI,'_',' '),
AMATERNO_CLI = REPLACE(AMATERNO_CLI,'_',' ')
WHERE CHARINDEX('_',NOMBRE_CLI)>0
OR CHARINDEX('_',APATERNO_CLI)>0
OR CHARINDEX('_',AMATERNO_CLI)>0
UPDATE TWCLIENTES_VTA SET
NOMBRE_CLI = REPLACE(NOMBRE_CLI,'_',' '),
APATERNO_CLI = REPLACE(APATERNO_CLI,'_',' '),
AMATERNO_CLI = REPLACE(AMATERNO_CLI,'_',' ')
WHERE CHARINDEX('_',NOMBRE_CLI)>0
OR CHARINDEX('_',APATERNO_CLI)>0
OR CHARINDEX('_',AMATERNO_CLI)>0
END
GO