sqlsql-serversql-server-2008

How can I filter words in SQL using a function?


How can I filter words in SQL using a function?

I'm having a hard time if I explain it, so I'm giving an example:

What I want is to get the name of the website. I want to select the record with an output like this. How can I remove the 'www.' and '.com' in the record?

ID WebsiteName
1 yahoo

Solution

  • How about this?

    CREATE FUNCTION dbo.StripWWWandCom (@input VARCHAR(250))
    RETURNS VARCHAR(250)
    AS BEGIN
        DECLARE @Work VARCHAR(250)
    
        SET @Work = @Input
    
        SET @Work = REPLACE(@Work, 'www.', '')
        SET @Work = REPLACE(@Work, '.com', '')
    
        RETURN @work
    END
    

    and then use:

    SELECT ID, dbo.StripWWWandCom (WebsiteName)
    FROM dbo.YourTable .....
    

    Of course, this is severely limited in that it will only strip www. at the beginning and .com at the end - nothing else (so it won't work on other host machine names like smtp.yahoo.com and other internet domains such as .org, .edu, .de and etc.)