Trim Non-Alpha characters from string

  • Atif-ullah Sheikh

    SSChampion

    Points: 12495

    Comments posted to this topic are about the item Trim Non-Alpha characters from string

    ----------------------------------------------------------------------------------------------------------------------------------------------------------------------
    Sometimes, winning is not an issue but trying.
    You can check my BLOG
    [font="Arial Black"]here[/font][/url][/right]

  • Tom Garth

    SSCertifiable

    Points: 6173

    Pretty cool.

    Tom Garth
    Vertical Solutions[/url]

    "There are three kinds of men. The one that learns by reading. The few who learn by observation. The rest of them have to pee on the electric fence for themselves." -- Will Rogers
  • katedgrt

    Ten Centuries

    Points: 1197

    Very nice. Just so happens I was bemoaning having to write a 'strip non-numeric characters' function today. You probably saved me an hour! 😀

    😎 Kate The Great :w00t:
    If you don't have time to do it right the first time, where will you find time to do it again?

  • katedgrt

    Ten Centuries

    Points: 1197

    I did get an error applying to a nullable column. (LEN=0; Error was "TOP clause contains an invalid value.") Because I'm in a hurry I just threw a case statement around the function call but a clause in the function to work around that would be a nice enhancement.

    😎 Kate The Great :w00t:
    If you don't have time to do it right the first time, where will you find time to do it again?

  • James Zimmerman

    SSC Veteran

    Points: 297

    Thank you for this example.

    If you do much data cleansing or string manipulation, keep in mind that you can implement regular expression functionality in SQL Server 2005 and above. It's easier than I thought it would be, assuming your DBA allows you to enable CLR integration.

    This article lays it out very well:

    http://justgeeks.blogspot.com/2008/08/adding-regular-expressions-regex-to-sql.html

  • Adam Sottosanti

    Old Hand

    Points: 388

    Thanks for the script, I like they way you created the tally table on the fly lilke that, I never thought of doing that! Here is what I've been using to do the same thing, it's pretty easy to modify to include/exclude numerics, spaces, certain special characters etc... which is why I like it.

    DECLARE @data VARCHAR(100)

    SET @data = '!2131231Atif123123 234234Sheikh6546'

    WHILE PATINDEX('%[^a-z ]%', @data) > 0

    SET @data = STUFF(@data, PATINDEX('%[^a-z ]%', @data), 1, '')

    SELECT

    RTRIM(LTRIM(@data)) AS Data

    Thanks again!

    Adam Sottosanti

  • frederico_fonseca

    SSChampion

    Points: 14207

    works only partially - does not take in consideration that fact that some countries do have Accented alphas so the code as is removes them.

    Select dbo.fnTrimNonAlphaCharacters('âáÉéôô') will just return an empty string for example.

    one possible change to the code to allow for the above is

    WHERE N <= LEN(@pString)

    And (Ascii(SUBSTRING(@pString collate SQL_Latin1_General_CP1253_CI_AI,N,1)) between 97 and 122

    Or Ascii(SUBSTRING(@pString collate SQL_Latin1_General_CP1253_CI_AI,N,1)) between 65 and 90

    Or Ascii(SUBSTRING(@pString collate SQL_Latin1_General_CP1253_CI_AI,N,1)) = 32)

  • akljfhnlaflkj

    SSC Guru

    Points: 76202

    Thanks for the script.

Viewing 8 posts - 1 through 8 (of 8 total)

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