Monday, June 10, 2013

How to Conver Upper Case to First Letter Capital of Each Word in SQL

SELECT dbo.ProperCase('Hardik Deshani')

Result : Hardik Deshani

Create Function This Function:

CREATE FUNCTION [dbo].[ToTitleCase]
(@OriginalText VARCHAR(8000))
RETURNS VARCHAR(8000) 
BEGIN
DECLARE @CleanedText VARCHAR(8000)
;with
  a1 as (select 1 as N union all select 1 union all
         select 1      union all select 1 union all
         select 1      union all select 1 union all
         select 1      union all select 1 union all
         select 1      union all select 1),
  a2 as (select 1 as N from a1 as a cross join a1 as b),
  a3 as (select 1 as N from a2 as a cross join a2 as b),
  a4 as (select 1 as N from a3 as a cross join a2 as b),
  Tally as (select top (len(@OriginalText)) row_number() over (order by N) as N from a4)
 
SELECT @CleanedText = ISNULL(@CleanedText,'') + 
     --first char is always capitalized?
CASE WHEN Tally.N = 1 THEN UPPER(SUBSTRING(@OriginalText,Tally.N,1))
     WHEN SUBSTRING(@OriginalText,Tally.N -1,1) = ' '  THEN UPPER(SUBSTRING(@OriginalText,Tally.N,1))
     ELSE LOWER(SUBSTRING(@OriginalText,Tally.N,1))
END
    
FROM Tally WHERE Tally.N <= LEN(@OriginalText)           
               
RETURN @CleanedText
END

No comments :

Post a Comment