Добро пожаловать в форум, Guest >> Войти | Регистрация | Поиск | Правила | | В избранное | Подписаться | ||
Все форумы / Microsoft SQL Server |
![]() ![]() |
Naile Member Откуда: Latvija Сообщений: 145 |
В таблице 1 значения поля Name2 могут быть : 'aaa', 'bbb', 'ccc', 'ddd', 'dddd' В таблице 2 значения поля Name могут быть : 'aaa street', 'bbb street', 'cccc street', 'ddd street', 'dddd street'. Необходимо вытащить из таблице 2 данные (id) для 'aaa street', 'bbb street', 'ddd street', 'dddd street'. Т.е. найти соответствия между значения поля в первой и во второй таблице. Изначально я делала Name like ('%' + LTRIM(RTRIM(Name2)) + '%') Но в таком случая я "доставала" для поля 'ccc' из первой таблицы значение id - 'cccc street' из второй таблицы, а так не дожно быть. Contains я не могу использовать - Cannot use a CONTAINS or FREETEXT predicate on table or indexed view 'dbo.table2' because it is not full-text indexed. Опиция Fulltext Index (для таблицы 2) у меня идет как disable (использую SQL 2008 Express Edition). Как, в таком случае, можно вытащить нужные мне данные? |
8 май 13, 15:37 [14274431] Ответить | Цитировать Сообщить модератору |
trew Member Откуда: Москва Сообщений: 2646 |
Naile, К полям, в первой и второй таблиц, добавить пробел вначале и в конце. Т.е. будет так ' ccc ' И сравнивать. |
8 май 13, 15:42 [14274483] Ответить | Цитировать Сообщить модератору |
iap Member Откуда: Москва Сообщений: 47047 |
Naile, распарсить записи в строки таблицы по разделителям, связать полученную таблицу с исходной по условию существования соответствующей записи в первой таблице. Под таблицей я понимаю не постоянную или временную таблицу, а подзапрос (derived table) или CTE. То есть всё в одной инструкции. |
8 май 13, 15:42 [14274485] Ответить | Цитировать Сообщить модератору |
trew Member Откуда: Москва Сообщений: 2646 |
trew, (пробелы добавлять в запросе, в таблицах данные останутся без изменений) |
8 май 13, 15:43 [14274500] Ответить | Цитировать Сообщить модератору |
Naile Member Откуда: Latvija Сообщений: 145 |
trew, Сейчас попробую. А если надо сравнить 'ccc' в одной таблице и 'ccc', 'cccc', 'ccccc' в другой таблице, этот метод сработает? |
8 май 13, 15:53 [14274573] Ответить | Цитировать Сообщить модератору |
Naile Member Откуда: Latvija Сообщений: 145 |
Метод добавления пробела сработал, спасибо. Единственное что - для варианта
|
||
8 май 13, 16:03 [14274635] Ответить | Цитировать Сообщить модератору |
iap Member Откуда: Москва Сообщений: 47047 |
|
||||
8 май 13, 16:11 [14274705] Ответить | Цитировать Сообщить модератору |
pio777 Member Откуда: Сообщений: 127 |
Naile, А почему не так: Name = Name2 + ' street' |
8 май 13, 17:16 [14275059] Ответить | Цитировать Сообщить модератору |
Naile Member Откуда: Latvija Сообщений: 145 |
pio777, А потому что где-то может быть 'ссс str', где-то 'ссс street', а где-то может 'ccc' - это я про вторую таблицу |
8 май 13, 17:23 [14275084] Ответить | Цитировать Сообщить модератору |
Все форумы / Microsoft SQL Server | ![]() |