How convert a text to a Title text with TSQL. It’s “easy” solution.
1
2CREATE FUNCTION udf_TitleCase (@InputString VARCHAR(4000))
3RETURNS VARCHAR(4000)
4AS
5BEGIN
6 DECLARE @Index INT
7 DECLARE @Char CHAR(1)
8 DECLARE @OutputString VARCHAR(255)
9
10 SET @OutputString = LOWER(@InputString)
11 SET @Index = 2
12 SET @OutputString = STUFF(@OutputString, 1, 1, UPPER(SUBSTRING(@InputString, 1, 1)))
13
14 WHILE @Index <= LEN(@InputString)
15 BEGIN
16 SET @Char = SUBSTRING(@InputString, @Index, 1)
17
18 IF @Char IN (' ', ';', ':', '!', '?', ',', '.', '_', '-', '/', '&', '''', '(')
19 IF @Index + 1 <= LEN(@InputString)
20 BEGIN
21 IF @Char != ''''
22 OR UPPER(SUBSTRING(@InputString, @Index + 1, 1)) != 'S'
23 SET @OutputString = STUFF(@OutputString, @Index + 1, 1,
24 UPPER(SUBSTRING(@InputString, @Index + 1, 1)))
25 END
26
27 SET @Index = @Index + 1
28 END
29
30 RETURN ISNULL(@OutputString, '')
31END
32GO
33
34SELECT dbo.udf_TitleCase('My test''s tests case of title!')
Comments