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

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/')

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