Добро пожаловать в форум, Guest >> Войти | Регистрация | Поиск | Правила | | В избранное | Подписаться | ||
Все форумы / Microsoft SQL Server |
![]() ![]() |
=Сергей= Member Откуда: Сообщений: 334 |
Есть много строк текстов самых разных видов (информация о клиентах). Как решить задачу вытаскивания из этих строк адресов email? Тупо создавать список шаблонов не хочется - бывают очень "креативные" строки. Или иначе никак? |
5 ноя 14, 19:30 [16802727] Ответить | Цитировать Сообщить модератору |
vova ivanov Member [заблокирован] Откуда: Сообщений: 1090 |
"бьёшь" весь текст на слова, и оставляешь те которые like '%@%' возможно, ещё придётся удалить последний символ (. ? , !) |
||
5 ноя 14, 19:44 [16802787] Ответить | Цитировать Сообщить модератору |
=Сергей= Member Откуда: Сообщений: 334 |
это, похоже, курсор - его хотелось бы избежать |
||
5 ноя 14, 19:50 [16802792] Ответить | Цитировать Сообщить модератору |
vova ivanov Member [заблокирован] Откуда: Сообщений: 1090 |
declare @t table (id int identity, txt varchar(max)) insert into @t (txt) select 'Есть много строк текстов admin@site.ru самых разных видов (информация о клиентах). Как решить задачу вытаскивания из этих строк адресов email admin@site.ru? Тупо создавать список шаблонов не хочется - бывают очень "креативные" строки admin@site.ru. Или иначе никак?' insert into @t (txt) select 'Есть много строк текстов admin1@site1.ru самых разных видов (информация о клиентах). Как решить задачу вытаскивания из этих строк адресов email admin@site1.ru? Тупо создавать список шаблонов не хочется - бывают очень "креативные" строки admin1@site.ru. Или иначе никак?' select t.id, b.val from @t t cross apply (select cast('<a>'+replace(t.txt,' ','</a><a>')+'</a>' as xml) as txt_xml) a cross apply (select t.c.value('text()[1]', 'varchar(20)') as val from a.txt_xml.nodes('a') as t(c)) b where b.val like '%@%' id val ----------- -------------------- 1 admin@site.ru 1 admin@site.ru? 1 admin@site.ru. 2 admin1@site1.ru 2 admin@site1.ru? 2 admin1@site.ru. |
||||
5 ноя 14, 19:57 [16802807] Ответить | Цитировать Сообщить модератору |
Все форумы / Microsoft SQL Server | ![]() |