COPY THIS INTO SQL SERVER
--TABLE
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[ETL_Days_Off](
[DayOffID] [int] IDENTITY(1,1) NOT NULL,
[DayOff] [date] NOT NULL,
CONSTRAINT [PK_ETL_DAYS_OFF] PRIMARY KEY CLUSTERED
(
[DayOffID] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]
GO
--DATA
DayOffID DayOff
1 2014-04-17
3 2014-04-18
--FUNCTION
IF OBJECT_ID (N'dbo.NextAvailableDay', N'FN') IS NOT NULL
DROP FUNCTION dbo.NextAvailableDay;
GO
CREATE FUNCTION dbo.NextAvailableDay (@Date datetime)
RETURNS DATETIME
WITH EXECUTE AS CALLER
AS
BEGIN
DECLARE @OK BIT = 0
WHILE (@OK = 0)
BEGIN
SELECT @Date = @Date + 1
IF ((SELECT COUNT(1) FROM ETL_Days_Off WHERE DayOff = @Date) = 0
AND (SELECT DATEPART(DW, @Date)) <> '6' --SABADO
AND (SELECT DATEPART(DW, @Date)) <> '7') --DOMINGO
SELECT @OK = 1
END
RETURN(DATEADD(HOUR,9,@Date));
END;
GO
--CALL
SET DATEFIRST 1;
SELECT dbo.NextAvailableDay(CONVERT(DATETIME,'04/16/2014',101)) AS 'ISO Week';
martes, 15 de abril de 2014
lunes, 14 de abril de 2014
martes, 8 de abril de 2014
Divide full name in parts using SQL
--<< COPY THIS TEST TO YOUR QUERY EDITOR >>--
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
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
Extract postal code 4 and 5 numeric values from the last part address in SQL
EXEC EXTRACT_CP 'PROL LUIS PONCE PRIN NO 12345 LA MORENA 17237 COYOACAN'
EXEC EXTRACT_CP 'PROL LUIS PONCE PRIN NO 1234 RINCONADA 7237 COYOACAN'
GO
ALTER PROCEDURE EXTRACT_CP
@str VARCHAR(MAX)
AS
BEGIN
DECLARE @tmp VARCHAR(MAX)
SELECT @tmp = @str
SELECT @tmp =
REVERSE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(
@tmp,'9','@'),'8','@'),'7','@'),'6','@'),'5','@'),'4','@'),'3','@'),'2','@'),'1','@'),'0','@'))
DECLARE @pos INT
IF (CHARINDEX('@@@@@', @tmp) = 0)
BEGIN
SELECT @pos = CHARINDEX('@@@@', @tmp)
SELECT @tmp = '0'
SELECT @tmp = @tmp + REVERSE(SUBSTRING(REVERSE(@str), @pos, 4))
END
ELSE
BEGIN
SELECT @pos = CHARINDEX('@@@@@', @tmp)
SELECT @tmp = REVERSE(SUBSTRING(REVERSE(@str), @pos, 5))
END
SELECT @tmp
END
GO
EXEC EXTRACT_CP 'PROL LUIS PONCE PRIN NO 1234 RINCONADA 7237 COYOACAN'
GO
ALTER PROCEDURE EXTRACT_CP
@str VARCHAR(MAX)
AS
BEGIN
DECLARE @tmp VARCHAR(MAX)
SELECT @tmp = @str
SELECT @tmp =
REVERSE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(
@tmp,'9','@'),'8','@'),'7','@'),'6','@'),'5','@'),'4','@'),'3','@'),'2','@'),'1','@'),'0','@'))
DECLARE @pos INT
IF (CHARINDEX('@@@@@', @tmp) = 0)
BEGIN
SELECT @pos = CHARINDEX('@@@@', @tmp)
SELECT @tmp = '0'
SELECT @tmp = @tmp + REVERSE(SUBSTRING(REVERSE(@str), @pos, 4))
END
ELSE
BEGIN
SELECT @pos = CHARINDEX('@@@@@', @tmp)
SELECT @tmp = REVERSE(SUBSTRING(REVERSE(@str), @pos, 5))
END
SELECT @tmp
END
GO
Suscribirse a:
Entradas (Atom)