|
|
|
Grasshopper
      
Group: General Forum Members
Last Login: Thursday, April 11, 2013 1:35 AM
Points: 12,
Visits: 81
|
|
|
|
|
|
Forum Newbie
      
Group: General Forum Members
Last Login: Friday, November 09, 2012 5:44 PM
Points: 3,
Visits: 34
|
|
This is a very simplistic implementation of a function that would be very useful if fully implemented. Unfortunately it doesn't take into account the myriad of language-specific exceptions to title case. In English, typically you don't "upper case" the first letter of words like "of" and "and". You don't lower case the 2nd/3rd letters of some Celtic surnames (eg. McCall or O'Toole). Sometimes you don't lowercase the first letter after a hyphen (eg. Guinea-Bissau). I'm sure there's more, it's a bit mind-blowing when you get into it!
James McCall
|
|
|
|
|
Forum Newbie
      
Group: General Forum Members
Last Login: Thursday, May 16, 2013 6:16 AM
Points: 5,
Visits: 224
|
|
Thanks for the useful script!
However, I noticed that you used:
Select @vString = Replace(@vString, @vWord, '')
This replaces _all_ occurrences of @vWord in @vString, eliminating repeated words in the title.
I fixed this using:
Select @vString = RIGHT(@vString, LEN(@vString) - LEN(@vWord))
This will just strip the first word from the string, which I believe was the intended behaviour.
Cheers, David Scheppers.
|
|
|
|
|
Grasshopper
      
Group: General Forum Members
Last Login: Wednesday, May 08, 2013 5:42 AM
Points: 13,
Visits: 234
|
|
| Like any TSQL function that iterates through strings, this will run fine on small sets or a single field, but if you're going to use this in large set queries, you might want to consider writing it as a CLR assembly: C# or VB.Net are faster at string parsing.
|
|
|
|