Выбор только части строки с подстановочным знаком (SQL Server) - PullRequest
0 голосов
/ 12 октября 2018

Я пытаюсь выделить только часть строки URL-адреса, используя подстановочные знаки.

Пример:

https://www.google.com.au/search?rlz=1C1GGRV_enAU787AU788&ei=9N6_W5o5w-b4BrKTvsgE&q=stackoverflow&oq=stackoverflow&gs_l=psy-ab.3..0i131i67k1j0l4j0i10k1j0l4.427511.429162.0.429260.13.8.0.0.0.0.314.525.2-1j1.2.0....0...1.1.64.psy-ab..11.2.524....0.NEXVTCFK4GA

Подстановочный знак для этого %//%/%

Iхочу только выбрать% // % /% (выделено жирным шрифтом).Это необходимо сделать для любого URL в том же формате.

Как я могу использовать для этого подстроку, заменить, charindex?

Или есть альтернативные способы сделать это?

1 Ответ

0 голосов
/ 12 октября 2018

Решение:

DECLARE @urls TABLE (urlId INT IDENTITY, urlText VARCHAR(500) NOT NULL);
INSERT @urls(urlText)
VALUES
('https://www.amazon.com/SQL-Server-MVP-Deep-Dives/dp/1617290475'),
('http://sqlblog.com/blogs/rob_farley/archive/2011/11/08/when-is-a-sql-function-not-a-function.aspx'),
('http://sqlblogcasts.com/blogs/simons/archive/2015/04/26/non-parallelizable-operations-in-sql-server.aspx'),
('http://www.sqlinthewild.co.za/index.php/2009/04/29/functions-io-statistics-and-the-execution-plan/'),
('https://www.brentozar.com/archive/2014/10/sql-server-functions-dragging-query/');

SELECT urlId   = u.urlId, 
       urlText = u.urlText, 
       [url]   = SUBSTRING(u.urlText,front.pos,txt.ln)
FROM @urls AS u
CROSS APPLY (VALUES(CHARINDEX('//',u.urlText)+2)) AS front(pos)
CROSS APPLY (VALUES(CHARINDEX('/',u.urlText,front.pos)-front.pos)) AS txt(ln);

Результаты:

urlId   urlText                                                 url
------- ------------------------------------------------------- ---------------------
1       https://www.amazon.com/SQL-Server-MVP-Deep-Dives/dp...  www.amazon.com
2       http://sqlblog.com/blogs/rob_farley/archive/2011/11...  sqlblog.com
3       http://sqlblogcasts.com/blogs/simons/archive/2015/0...  sqlblogcasts.com
4       http://www.sqlinthewild.co.za/index.php/2009/04/29/...  www.sqlinthewild.co.za
5       https://www.brentozar.com/archive/2014/10/sql-serve...  www.brentozar.com
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...