Skip to main content

Function to keep First letter capital in a word- Pascal Naming Convention

Hi All,

Here is function to make first letter capital in a word, which is also known as "Pascal Naming Convention"

CREATE FUNCTION [dbo].[InitCap] (@InputString VARCHAR(4000))
RETURNS VARCHAR(4000)
AS
BEGIN
 DECLARE @Index INT
 DECLARE @Char CHAR(1)
 DECLARE @PrevChar CHAR(1)
 DECLARE @OutputString VARCHAR(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
GO

Comments