GO IF OBJECT_ID(N'[dbo].[ProcesarCadena]') IS NOT NULL DROP FUNCTION dbo.ProcesarCadena; GO CREATE FUNCTION dbo.ProcesarCadena ( @entrada NVARCHAR(255) ) RETURNS NVARCHAR(255) AS BEGIN DECLARE @cadena NVARCHAR(255); DECLARE @num INT; DECLARE @longitud INT; DECLARE @resultado NVARCHAR(255); SET @cadena = SUBSTRING(@entrada, 1, CHARINDEX('|', @entrada) - 1); SET @num = CONVERT(INT, SUBSTRING(@entrada, CHARINDEX('|', @entrada) + 1, LEN(@entrada))); SET @longitud = LEN(@cadena); IF @longitud < 4 OR @num < 10 OR @num > 99 BEGIN SET @resultado = 'NO SE CUMPLE CON LOS REQUISITOS MINIMOS'; END ELSE BEGIN IF (@num / 10 + @num % 10) % 2 = 0 BEGIN SET @resultado = UPPER(LEFT(@cadena, 1)) + LOWER(SUBSTRING(@cadena, 2, @longitud - 2)) + UPPER(RIGHT(@cadena, 1)); END ELSE BEGIN SET @resultado = LOWER(LEFT(@cadena, 1)) + UPPER(SUBSTRING(@cadena, 2, @longitud - 2)) + LOWER(RIGHT(@cadena, 1)); END END RETURN @resultado; END SELECT dbo.ProcesarCadena('elmejorprofe|35') AS Resultado;