Change String to Title Case(Initcap)

  • Comments posted to this topic are about the item Change String to Title Case(Initcap)

  • 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

  • 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.

  • 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.

  • Thanks for the script.

Viewing 5 posts - 1 through 4 (of 4 total)

You must be logged in to reply to this topic. Login to reply