|
Поиск текстовых значений в тексте в БД SQL Server
|
|||
---|---|---|---|
#18+
Всем привет. Возникла задача. Есть две БД. В одной БД в таблице, в колонке содержатся логины(nvarchar). В другой БД в колонке есть текст(nvarchar(2000)) в которой эти логины появляются. Нужно эти логины найти и записать в рядом стоящую колонку второй базы(где текст). Я вижу решение с помощью регулярных выражений System.Text.RegularExpressions. Но не особо разбираюсь в этом. В идеале, конечно, если бы кто-нибудь написал скрипт компонент для SSIS, а я бы например, ящик пива поставил тому. Хотя мне достаточно будет подсказки ... |
|||
:
Нравится:
Не нравится:
|
|||
08.05.2016, 21:15 |
|
Поиск текстовых значений в тексте в БД SQL Server
|
|||
---|---|---|---|
#18+
WHERE database1.table1.field1 LIKE "%"+ database2.table2.field2+"%" ... |
|||
:
Нравится:
Не нравится:
|
|||
08.05.2016, 21:35 |
|
Поиск текстовых значений в тексте в БД SQL Server
|
|||
---|---|---|---|
#18+
Вопрос, как выделенному патернну присвоить значение из таблицы базы? using System.Text.RegularExpressions; public override void Input0_ProcessInputRow(Input0Buffer Row) { //Replace each \ with \\ so that C# doesn't treat \ as escape character //Pattern: Start of string, any integers, 0 or 1 letter, end of word string sPattern = "^[0-9]+([A-Za-z]\\b)?"; string sString = Row.Address1 ?? ""; //Coalesce to empty string if NULL //Find any matches of the pattern in the string Match match = Regex.Match(sString, sPattern, RegexOptions.IgnoreCase); //If a match is found if (match.Success) //Return the first match into the new //HouseNumber field Row.HouseNumber = match.Groups[0].Value; else //If not found, leave the HouseNumber blank Row.HouseNumber = ""; } ... |
|||
:
Нравится:
Не нравится:
|
|||
09.05.2016, 10:28 |
|
Поиск текстовых значений в тексте в БД SQL Server
|
|||
---|---|---|---|
#18+
Данные, которые хранятся в таблицах БД, нужно обрабатывать запросами непосредственно на сервере БД. Тащить их в приложение и потом итерачить там - дурь несусветная. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.05.2016, 18:55 |
|
Поиск текстовых значений в тексте в БД SQL Server
|
|||
---|---|---|---|
#18+
Akina, И не поспоришь;) вы правы. Однако, что делать если в vb больше опыта, чем в t-sql. Мне в примере вашего фильтра не понятно как, он(движок) будет перебирать каждый из 2000 значений из таблицы логинов. Если это так же как функция ВПР(vlookup), то ок. Завтра потестю ... |
|||
:
Нравится:
Не нравится:
|
|||
09.05.2016, 19:53 |
|
Поиск текстовых значений в тексте в БД SQL Server
|
|||
---|---|---|---|
#18+
Как перебирать будет? Ну хреново, конечно, зато всё равно на порядок лучше клиента. На самом деле больше всего очется потыкать в неопределённость озвученной задачи. Что делать, если запись соответствует нескольким шаблонам? А ещё - как будете учитывать случайные соответствия? ... |
|||
:
Нравится:
Не нравится:
|
|||
09.05.2016, 21:33 |
|
Поиск текстовых значений в тексте в БД SQL Server
|
|||
---|---|---|---|
#18+
... |
|||
:
Нравится:
Не нравится:
|
|||
10.05.2016, 11:37 |
|
Поиск текстовых значений в тексте в БД SQL Server
|
|||
---|---|---|---|
#18+
Почитай про полнотекстовый поиск ... |
|||
:
Нравится:
Не нравится:
|
|||
10.05.2016, 12:11 |
|
Поиск текстовых значений в тексте в БД SQL Server
|
|||
---|---|---|---|
#18+
AkinaДанные, которые хранятся в таблицах БД, нужно обрабатывать запросами непосредственно на сервере БД. Тащить их в приложение и потом итерачить там - дурь несусветная. Ну для одноразовой миграции данных в тяжелых случаях иногда годно. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.05.2016, 12:37 |
|
|
start [/forum/topic.php?fid=20&msg=39231621&tid=1400618]: |
0ms |
get settings: |
11ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
78ms |
get topic data: |
10ms |
get forum data: |
3ms |
get page messages: |
45ms |
get tp. blocked users: |
1ms |
others: | 17ms |
total: | 187ms |
0 / 0 |