В идеале вы будете делать это хранимой процедурой, чтобы разбить работу на куски размером с укус.Вы можете сделать все это в одном операторе 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