Occasionally I'll need to format a string in SQL with 'Proper' casing. In other words, change 'steve gray' to 'Steve Gray'.
Here is a function to do that
CREATE FUNCTION [dbo].[f_FP_Capitalize]
-- select dbo.f_FP_Capitalize ('steve gray')
(
@string VARCHAR(8000)
)
RETURNS VARCHAR(8000)
AS
BEGIN
DECLARE @Next INT
WHILE 1=1
BEGIN
--find word space followed by lower case letter
--This makes assumptions about the language
SELECT @next=
PATINDEX('%[^a-zA-Z][abcdefghijklmnopqurstuvwzyz]%',
' <a href="mailto:'+@string">'+@string</a> collate Latin1_General_CS_AI)
IF @next =0 BREAK
SELECT @String =
STUFF(@String,@Next,1,UPPER(SUBSTRING(@String,@Next,1)))
END
RETURN @string
END