Buscar

lunes, 20 de abril de 2009

Formatear texto SQL (Poner letra inicial en mayuscula)

Esta función sql muestra como poner la primera letra de cada palabra en mayúscula de un registro de nuestra base de datos, es muy útil, cuando los usuarios, ingresan los datos de manera desorganizada.

Uso:
Select [dbo].InitCap('TEXTO A FORMATEAR')
Resultado:
Texto A Formatear


CREATE FUNCTION [dbo].[InitCap] ( @InputString nvarchar(255) )
RETURNS NVARCHAR(255)
AS
BEGIN
DECLARE @Index INT
DECLARE @Char CHAR(1)
DECLARE @PrevChar CHAR(1)
DECLARE @OutputString NVARCHAR(255)
SET @OutputString = LOWER(@InputString)
SET @Index = 1
WHILE @Index <= LEN(@InputString) BEGIN SET @Char = SUBSTRING(@InputString, @Index, 1) SET @PrevChar = CASE WHEN @Index = 1 THEN ' ' ELSE SUBSTRING(@InputString, @Index - 1, 1) END IF @PrevChar IN (' ', ';', ':', '!', '?', ',', '.', '_', '-', '/', '&', '''', '(') BEGIN IF @PrevChar != '''' OR UPPER(@Char) != 'S' SET @OutputString = STUFF(@OutputString, @Index, 1, UPPER(@Char)) END SET @Index = @Index + 1 END RETURN @OutputString END

1 comentario: