![]() |
|
Модераторы: skyboy |
![]()
|
|
| MadCoder |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 478 Регистрация: 24.8.2007 Где: Москва Репутация: нет Всего: 2 |
Здравствуйте!
У меня есть две таблички, одна с индексами, другая с префиксами индексов (первые три цифры). Как мне выбрать для каждой записи из первой таблички строчку из второй таблицы. 1 таблица: Имя: | Индекс | ------------------------ Клиент 1 | 143312| Клиент 2 | 185441| 2 таблица: Индекс | Название ----------------------------- 140 Московская область 141 Московская область 142 Московская область 143 Московская область 185 Карелия ------------------------------ Должно получица: Клиент 1 | Московская область Клиент 2 | Карелия |
|||
|
||||
| skyboy |
|
|||
|
неОпытный ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9820 Регистрация: 18.5.2006 Где: Днепропетровск Репутация: 15 Всего: 260 |
индексы и их "префиксы" - строки или числа?
вообще говоря, тебе надо использовать функцию проверки подстроки в строку. префиксы индексов имеют одинаковую длину?
|
|||
|
||||
| Nuzur |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1019 Регистрация: 4.7.2004 Репутация: нет Всего: 5 |
Какая СУБД?
Если MSQL - SUBSTRING Если Oracle - Substr Остальное не подскажу. -------------------- Never again... |
|||
|
||||
| Akina |
|
|||
|
Советчик ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 20581 Регистрация: 8.4.2004 Где: Зеленоград Репутация: 45 Всего: 454 |
Вот что построил Аксесс:
-------------------- О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума. |
|||
|
||||
| MadCoder |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 478 Регистрация: 24.8.2007 Где: Москва Репутация: нет Всего: 2 |
Числа. В делфи это должно выглядеть так:
If Copy(Text, 1,3)='123' then .... Т.е. строго первые три цифры должны совпадать со списком, где именно эти трехзначные числа собраны. |
|||
|
||||
| skyboy |
|
|||
|
неОпытный ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9820 Регистрация: 18.5.2006 Где: Днепропетровск Репутация: 15 Всего: 260 |
а вот и фигу. copy в delphi - строковая функция вобщем, как и сказали товарищи, надо использовать зависящую от СУБД(почему не говоришь, какая УБД?! тайна, что ли?) функцию: substr, locate, left или адекватную. учитывая, что у тебя поля - числа(зачем, кстати?), тебе сначала может понадобиться приводить значения полей к типу char/varchar через convert/cast или какой-то toStr(в зависимости от СУБД). |
|||
|
||||
| Akina |
|
|||
|
Советчик ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 20581 Регистрация: 8.4.2004 Где: Зеленоград Репутация: 45 Всего: 454 |
Ну если там числа, и индекс в первой таблице строго 6 цифр, а во второй 3, то можно и целочисленно поделить на 1000... -------------------- О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума. |
|||
|
||||
| Deniz |
|
||||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1251 Регистрация: 16.10.2004 Где: Новый Уренгой Репутация: 6 Всего: 44 |
Подойдет для многих СУБД
-------------------- "Для того чтобы сделать шаг вперед, достаточно пинка сзади" (с) |
||||
|
|||||
| MadCoder |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 478 Регистрация: 24.8.2007 Где: Москва Репутация: нет Всего: 2 |
Спасибо, Всем, особенно Deniz, все замечательно работает. Обернул в функцию и получился следующий код:
И спасибо за ссылку на "Тренировка на www.sql-ex.ru" в подписи - давно искал, никак не мог отыскать Это сообщение отредактировал(а) MadCoder - 29.5.2008, 11:20 |
|||
|
||||
![]()
|
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Составление SQL-запросов | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |