Разбор параметров URL с использованием T-SQL - PullRequest
0 голосов
/ 01 марта 2019

У меня есть некоторый URL для цифрового маркетинга.Эти URL имеют параметры, поэтому я хочу проанализировать URL и вставить таблицу.Для отслеживания кампаний и анализа.

Например:

https://www.example.com/?utm_source=google&utm_medium=blabla&utm_campaign=gameuser&utm_term=winwin&utm_content=takego

enter image description here

Я хочу вставить такую ​​таблицу.Как я могу это сделать?

1 Ответ

0 голосов
/ 01 марта 2019

В идеале вы будете делать это хранимой процедурой, чтобы разбить работу на куски размером с укус.Вы можете сделать все это в одном операторе SQL, но это становится кошмаром, когда вы добираетесь до последних нескольких параметров!

Основной подход заключается в использовании комбинации CHARINDEX и SUBSTRING для разбора URL-адреса ... Нашли первый?затем возьмите оттуда до первого & (затем разделите эту сторону по обе стороны от =). Затем вы найдете следующий & (разделить = =) и промойте и повторите.

Я начал процесс здесь для вас- Вы должны иметь возможность расширить это, чтобы получить остальные параметры из URL - Это немного медленно и неуклюже, но по крайней мере вы можете видеть, что происходит:

Запустите этот бит SQL, и вы скорополучить представление:

declare @str VARCHAR(8000)= 'https://www.example.com/?utm_source=google&utm_medium=blabla&utm_campaign=gameuser&utm_term=winwin&utm_content=takego'

DECLARE @str1 VARCHAR(8000)= SUBSTRING(@str, CHARINDEX( '?',@str, 1)+1, CHARINDEX( '&',@str, 1) -CHARINDEX( '?',@str, 1)-1)

SELECT SUBSTRING(@str1, 1, CHARINDEX( '=',@str1, 1)-1)

SELECT SUBSTRING(@str1, CHARINDEX( '=',@str1, 1)+1, LEN(@Str1))

DECLARE @str2  VARCHAR(8000) = SUBSTRING(@str, CHARINDEX( '?',@str, 1) + len(@str1) + 2, LEN(@str))

SELECT @str2 = SUBSTRING(@str2, 1, CHARINDEX( '&',@str2, 1)-1)

SELECT @str2
...