Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 MS sql поиск слова в строке  [new]
LolBee
Member

Откуда: Киев
Сообщений: 45
Здравствуйте)

Подскажите плз, конструкцию что бы найти в текстовой строке нужные слова.

Например:
Есть такая строка

declare @str as varchar(max);
set @str = '[Name]''Вася''<br/>[Surname]''Топор''<br/>[Email]''vasyatheax@gmail.com''<br/>'


И нужно из нее вытянуть в отдельные коллонки:

[Name] [Surname] [Email]
--------------------------------------
Вася Топор vasyatheax@gmail.com


Есть идеи?
Буду весьма благодарен =)))
10 авг 16, 14:10    [19524940]     Ответить | Цитировать Сообщить модератору
 Re: MS sql поиск слова в строке  [new]
*CRAZY*
Guest
LolBee,

declare @str as varchar(max);
set @str = '[Name]''Вася''<br/>[Surname]''Топор''<br/>[Email]''vasyatheax@gmail.com''<br/>'
select b.b.query('./br[@t="Name"]').value('.','varchar(100)')   [Name]
      ,b.b.query('./br[@t="Surame"]').value('.','varchar(100)') [Surname]
      ,b.b.query('./br[@t="Email"]').value('.','varchar(100)')  [Email]
  from (select cast(replace(replace(replace(replace(@str,'[Name]','<br t="Name">'),'[Surname]','<br t="Surame">'),'[Email]','<br t="Email">'),'<br/>','</br>') as xml))a(a)
 cross apply a.a.nodes('.')b(b)
10 авг 16, 14:41    [19525094]     Ответить | Цитировать Сообщить модератору
 Re: MS sql поиск слова в строке  [new]
invm
Member

Откуда: Москва
Сообщений: 9633
declare @str as varchar(max);
set @str = '[Name]''Вася''<br/>[Surname]''Топор''<br/>[Email]''vasyatheax@gmail.com''<br/>';

select
 t.n.value('@Name', 'varchar(100)'),
 t.n.value('@Surname', 'varchar(100)'),
 t.n.value('@Email', 'varchar(100)')
from
 (select cast('<a ' + replace(replace(replace(@str, '''<br/>', '" '), ']''', ' = "'), '[', '') + '/>' as xml)) a(x) cross apply
 a.x.nodes('a') t(n);
10 авг 16, 14:48    [19525142]     Ответить | Цитировать Сообщить модератору
 Re: MS sql поиск слова в строке  [new]
LolBee
Member

Откуда: Киев
Сообщений: 45
То что надо))

Спасибо, ребят!
10 авг 16, 14:55    [19525183]     Ответить | Цитировать Сообщить модератору
 Re: MS sql поиск слова в строке  [new]
LolBee
Member

Откуда: Киев
Сообщений: 45
*CRAZY*, invm,

А подскажите, что это за синтаксис чтоб я мог почитать об этом)
Спасибо
10 авг 16, 15:06    [19525236]     Ответить | Цитировать Сообщить модератору
 Re: MS sql поиск слова в строке  [new]
Владислав Колосов
Member

Откуда:
Сообщений: 8316
XPATH, XQUERY.
XML data type.
10 авг 16, 15:28    [19525358]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить