Convert UPPER Case and LOWER Case to Proper Case/Title Case in SQL Server

First We have to create a function for proper case.
  1. CREATE FUNCTION [dbo].[ProperCase]  
  2. (  
  3. @Input as varchar(8000)  
  4. )  
  5. RETURNS varchar(8000)  
  6. AS  
  7. BEGIN  
  8. DECLARE @Reset bit,  
  9. @Proper varchar(8000),  
  10. @Counter int,  
  11. @FirstChar char(1)  
  12. SELECT @Reset = 1, @Counter = 1, @Proper = ''  
  13. WHILE (@Counter <= LEN(@Input))  
  14. BEGIN  
  15. SELECT @FirstChar = SUBSTRING(@Input, @Counter, 1),  
  16. @Proper = @Proper + CASE WHEN @Reset = 1 THEN UPPER(@FirstChar) ELSE LOWER(@FirstChar) END,  
  17. @Reset = CASE WHEN @FirstChar LIKE '[a-zA-Z]' THEN 0 ELSE 1 END,  
  18. @Counter = @Counter + 1  
  19. END  
  20. SELECT @Proper = REPLACE(REPLACE(REPLACE(LTRIM(RTRIM(@Proper)),' ',' 'CHAR(7)) , CHAR(7)+' ',''), CHAR(7),'')  
  21. WHERE CHARINDEX(' ', @Proper) > 0  
  22. RETURN @Proper  
  23. END  
Then after write a query for test.
  1. SELECT dbo.ProperCase('NIKHILSANGANI')  
Output: Nikhilsangani