Hola ABC-eLearners, a modo de ayuda para todos los lectores con ganas de aprender SQL, voy a compartirles mis experiencias, las que considere más útiles para todos. Hoy les presentamos una función muy importante para dar un formato a textos. Conversor de las primeras letras a mayúscula.
CREATE FUNCTION dbo.f_InitCap
(
@inStr VARCHAR(8000)
)
RETURNS VARCHAR(8000)
AS
BEGIN
DECLARE @outStr VARCHAR(8000) = LOWER(@inStr),
@char CHAR(1),
@alphanum BIT = 0,
@len INT = LEN(@inStr),
@pos INT = 1
-- 1. Iterar entre todos los caracteres en la cadena de entrada
WHILE @pos <= @len BEGIN
-- Obtener el siguiente caracter
SET @char = SUBSTRING(@inStr, @pos, 1)
-- 2. Si la posición del caracter es la 1ª, o el caracter previo no es alfanumérico
-- 3. convierte el caracter actual a mayúscula
IF @pos = 1 OR @alphanum = 0 BEGIN
SET @outStr = STUFF(@outStr, @pos, 1, UPPER(@char))
SET @pos = @pos + 1
-- 4. Define si el caracter actual es non-alfanumérico
IF ASCII(@char) <= 47 OR (ASCII(@char) BETWEEN 58 AND 64) OR
(ASCII(@char) BETWEEN 91 AND 96) OR (ASCII(@char) BETWEEN 123 AND 126)
BEGIN
SET @alphanum = 0
END
ELSE BEGIN
SET @alphanum = 1
END
END
RETURN @outStr
END
Ejemplo 1
SELECT DBO.f_InitCap('consuelo LLAMOCCA paCHECO')
--Resultado: Consuelo Llamocca Pacheco
Ejemplo 2
SELECT DBO.f_InitCap('consuelo llamocca pacheco')
--Resultado: Consuelo Llamocca Pacheco
Comenta qué otras funciones más necesitarías para reusar y optimizar tu tiempo mientras programas en Base de datos.
Deja un comentario