The first character in each word is converted to uppercase
while the rest of the characters of the word are all made to lowercase.
The same is the case for the word "MINI", as can be seen from the book
titles "A Practical Guide To Project Management". Instead of maintaining it to all capital letters, it was
changed to "Mini". Since the user-defined function won't be able
to know which words need to be retained as all capital letters, these special
cases have to be handled manually.
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER 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
No comments:
Post a Comment