Created
July 14, 2020 08:09
-
-
Save ebenito/f9a1374be25e005c518744be6338a9f6 to your computer and use it in GitHub Desktop.
Capitalizar la primera letra de cada palabra
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
CREATE FUNCTION [dbo].[CapitalizeFirstLetter] | |
( | |
--string need to format | |
@string VARCHAR(200)--increase the variable size depending on your needs. | |
) | |
RETURNS VARCHAR(200) | |
AS | |
BEGIN | |
--Declare Variables | |
DECLARE @Index INT, | |
@ResultString VARCHAR(200)--result string size should equal to the @string variable size | |
--Initialize the variables | |
SET @Index = 1 | |
SET @ResultString = '' | |
--Run the Loop until END of the string | |
WHILE (@Index <LEN(@string)+1) | |
BEGIN | |
IF (@Index = 1)--first letter of the string | |
BEGIN | |
--make the first letter capital | |
SET @ResultString = | |
@ResultString + UPPER(SUBSTRING(@string, @Index, 1)) | |
SET @Index = @Index+ 1--increase the index | |
END | |
-- IF the previous character is space or '-' or next character is '-' | |
ELSE IF ((SUBSTRING(@string, @Index-1, 1) =' 'or SUBSTRING(@string, @Index-1, 1) ='-' or SUBSTRING(@string, @Index+1, 1) ='-') and @Index+1 <> LEN(@string)) | |
BEGIN | |
--make the letter capital | |
SET | |
@ResultString = @ResultString + UPPER(SUBSTRING(@string,@Index, 1)) | |
SET | |
@Index = @Index +1--increase the index | |
END | |
ELSE-- all others | |
BEGIN | |
-- make the letter simple | |
SET | |
@ResultString = @ResultString + LOWER(SUBSTRING(@string,@Index, 1)) | |
SET | |
@Index = @Index +1--incerase the index | |
END | |
END--END of the loop | |
IF (@@ERROR | |
<> 0)-- any error occur return the sEND string | |
BEGIN | |
SET | |
@ResultString = @string | |
END | |
-- IF no error found return the new string | |
RETURN @ResultString | |
END | |
-- FROM: https://stackoverflow.com/questions/15290754/sql-capitalize-first-letter-only | |
-- HOW TO USE IT: | |
-- Select dbo.CapitalizeFirstLetter('juan esteban'); -- Result --> Juan Esteban |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Función para SQL SERVER; una vez creada, su uso es:
Select dbo.CapitalizeFirstLetter('juan esteban');