Image

Funciones Útiles - Convertir texto a capital

SQLServer

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.

0 Commentario(s)

Deja un comentario