Гость
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Парсинг строки t-sql / 3 сообщений из 3, страница 1 из 1
17.09.2020, 13:53
    #39999779
Парсинг строки t-sql
Добрый день!
Есть строка
'20200101;234;Adress;1212;data1;23;data2;44;el;23'

Как получить набор
data1;23;data2;44

Длина строки не постоянна. Необходимо вытащить именно блок data1-data2
получается пока только нагромождение left, right, charindex....
...
Рейтинг: 0 / 0
17.09.2020, 14:06
    #39999791
invm
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Парсинг строки t-sql
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
declare @s varchar(100) = '20200101;234;Adress;1212;data1;23;data2;44;el;23';

with s(rn, v) as
(
 select
  row_number() over (order by c.n),
  c.n.value('.', 'varchar(100)')
from
 (select cast(cast('' as xml).query('sql:variable("@s")') as varchar(max))) a(s) cross apply
 (select cast('<item>' + replace(a.s, ';', '</item><item>') + '</item>' as xml)) b(x) cross apply
 b.x.nodes('item') c(n)
)
select
 s1.v, s2.v
from
 s s1 join
 s s2 on s2.rn = s1.rn + 1
where
 s1.v in ('data1', 'data2');
...
Рейтинг: 0 / 0
17.09.2020, 20:35
    #40000036
Парсинг строки t-sql
invm,
Спасибо. Ваш вариант полностью подходит.
...
Рейтинг: 0 / 0
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Парсинг строки t-sql / 3 сообщений из 3, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]