MsSQL – Jak wyciąć nazwę domeny z adresu URL

1. Nazwa domeny z adresu strony w T-SQL

Jeśli korzystasz z MsSQL i masz do czynienia z danymi ze stron web, przydatną funkcjonalnością będzie możliwość wyciągania nazwy domeny z adresu url.  Możesz zrobić to na kilka prostych sposobów. Dwoma najprostszymi sposobami, by to zrobić jest samodzielne utworzenie funkcji w t-sql lub też napisanie prostej klauzuli CASE MsSQL. Poniżej przedstawiam obydwa przykłady w jaki sposób wyciąć adres domeny z dłuższego adresu url. Oba sposoby uwzględniają to, że adres może być zapisany z frazą http lub https. np https://tomaszkenig.pl/kurs-sql-server/.

2. MsSQL Nazwa domeny z adresu URL – Przykład CASE

Jeśli chcesz w MsSQL zwrócić nazwę domeny z adresu url jednorazowo, nie musisz budować w tym celu funkcji. Możesz użyć prostej klauzuli MsSQL CASE When do zwrócenia adresu. poniżej przykład kodu za pomocą którego możesz to zrobić. Case możemy zastosować w dowolnym kodzie SQL.

--tomaszkenig.pl
select 
CASE 
 WHEN UPPER('https://tomaszkenig.pl/kurs-sql-server/') LIKE 'HTTPS:%'
 THEN lower(SUBSTRING('https://tomaszkenig.pl/kurs-sql-server/', 9,CHARINDEX('/', 'https://tomaszkenig.pl/kurs-sql-server/', 9)-9 ))
 WHEN UPPER('https://tomaszkenig.pl/kurs-sql-server/') LIKE 'HTTP:%'
 THEN lower(SUBSTRING('https://tomaszkenig.pl/kurs-sql-server/', 8,CHARINDEX('/', 'https://tomaszkenig.pl/kurs-sql-server/', 8)-8 ))
 ELSE NULL
END

 

MSSQL nazwa domeny z adresu URL
MSSQL nazwa domeny z adresu URL

3. MsSQL Nazwa domeny z adresu URL – Przykład funkcji

Poniżej przykład prostej funkcji mojego autorstwa do wyciągania nazwy domeny z adresu. Budując własne funkcje w T-SQL trzeba pamiętać, że odwołując się do wcześniej napisanej funkcji należy podać schemat, na którym funkcja jest składowana. Funkcję w naszym przykładzie nazwiemy fnGetDomainUrl.

--tomaszkenig.pl
CREATE FUNCTION [dbo].[fnGetDomainUrl](@urlIn varchar(4000))
 returns varchar(4000)
 AS
 BEGIN
 -- funkcja służy do skrócenia całości adresu url do samej domeny
 -- szuka postaci http lub https://nazwadomeny/ lub http://nazwadomeny/ 
 -- funkcja zwraca pełną nazwę domeny np tomaszkenig.pl
RETURN CASE 
 WHEN UPPER(@urlIn) LIKE 'HTTPS:%'
 THEN lower(SUBSTRING(@urlIn, 9,CHARINDEX('/', @urlIn, 9)-9 ))
 WHEN UPPER(@urlIn) LIKE 'HTTP:%'
 THEN lower(SUBSTRING(@urlIn, 8,CHARINDEX('/', @urlIn, 8)-8 ))
 ELSE NULL
 END
 END;
GO

Jak wcześniej wspomniałem, by wywołać własną funkcję w MsSQL należy podać schemat, na którym funkcja ta jest składowana. W naszym przypadku jest to główny schemat, a więc dbo. Jeśli chcesz skorzystać z funkcji, możesz ją wywołać w taki sposób:

--tomaszkenig.pl
select dbo.fnGetDomainUrl('https://tomaszkenig.pl/kurs-sql-server/')
Skrypty SQL Server - MsSQL Nazwa domeny z adresu URL
Skrypty SQL Server – MsSQL Nazwa domeny z adresu URL

Jeśli chcesz poszerzyć swoją wiedzę na temat SQL Server, zachęcam do zapoznania się z kursem SQL Server, który zamieszczam pod tym adresem: Kurs MsSQL. Odsyłam także do innych przykładów dla SQL Server

 

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *