sqlsql-server

Extract hostname from a URL


I have to trim the website name upto ".com" or"co.in" in sql

example: lets assume i have site address as"http://stackoverflow.com/questions/ask?title=trim". I need to get the result as "stackoverflow.com".

some scenario it may be like "www.google.co.in" then i need it to be "google.co.in"


Solution

  • Please use the below SQL code to extract the domain name:

    DECLARE @WebUrl VARCHAR(35);
    SET @WebUrl = 'http://stackoverflow.com/questions/ask?title=trim'
    
    SELECT @WebUrl AS 'WebsiteURL',
           LEFT(SUBSTRING(@WebUrl, 
           (CASE WHEN CHARINDEX('//',@WebUrl)=0 
                THEN 5 
                ELSE  CHARINDEX('//',@WebUrl) + 2
                END), 35),
           (CASE 
           WHEN CHARINDEX('/', SUBSTRING(@WebUrl, CHARINDEX('//', @WebUrl) + 2, 35))=0 
           THEN LEN(@WebUrl) 
           else CHARINDEX('/', SUBSTRING(@WebUrl, CHARINDEX('//', @WebUrl) + 2, 35))- 1
           END)
           ) AS 'Domain';