Модераторы: Akella
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Вхождение строк, IBM DB2 
V
    Опции темы
Zhenyusya
Дата 14.9.2011, 12:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 58
Регистрация: 14.8.2008
Где: Барнаул

Репутация: нет
Всего: нет



Коллеги, помогите, пожалуйста!
У меня СУБД IBM DB2.
Есть таблица msk.dossier.
В ней есть поле name.
Необходимо получить все записи, у которых поле name содержится в какой-то постоянной строке, например, 'ИВАНОВА ИВАННА ИВАНОВНА'.
Пытаюсь делать следующим образом, но ничего не получается.
Код

select * from msk.dossier where posstr('ИВАНОВА ИВАННА ИВАНОВНА', name) > 0;


PM MAIL ICQ   Вверх
Zhenyusya
Дата 14.9.2011, 13:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 58
Регистрация: 14.8.2008
Где: Барнаул

Репутация: нет
Всего: нет



Вопрос снимаю, нашла функцию LOCATE.  smile 
PM MAIL ICQ   Вверх
Данкинг
Дата 14.9.2011, 14:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Yersinia pestis
****


Профиль
Группа: Завсегдатай
Сообщений: 8302
Регистрация: 7.11.2006
Где: მოსკოვი

Репутация: нет
Всего: 130



А как LOCATE связан с SELECT в данном случае? Наверняка же есть что-нибудь вроде %% для частичного поиска.


--------------------
There's nothing left but silent epitaphs.
PM MAIL WWW   Вверх
dvska
  Дата 14.9.2011, 19:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 182
Регистрация: 30.1.2006

Репутация: 1
Всего: 9



Код

 where name like '%ИВАНОВА ИВАННА ИВАНОВНА%'

--------------------
PM MAIL   Вверх
Zhenyusya
Дата 15.9.2011, 05:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 58
Регистрация: 14.8.2008
Где: Барнаул

Репутация: нет
Всего: нет



Это не проходит
Цитата

Код

where name like '%ИВАНОВА ИВАННА ИВАНОВНА%'


т.к. в name строки типа 'ИВАННА'
А LOCATE - практически тоже самое, что и POSSTR, только может в качестве переменной искомой подстроки воспринимать имя атрибута таблицы
Код

select * from msk.dossier where locate(name, 'ИВАНОВА ИВАННА ИВАНОВНА')>0;

т.о. я выберу все записи, у которых name содержится в 'ИВАНОВА ИВАННА ИВАНОВНА'
PM MAIL ICQ   Вверх
Данкинг
Дата 15.9.2011, 10:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Yersinia pestis
****


Профиль
Группа: Завсегдатай
Сообщений: 8302
Регистрация: 7.11.2006
Где: მოსკოვი

Репутация: нет
Всего: 130



"locate" - это даже оператор СУБД, что ли? Я думал, функция Дельфи обычная.


--------------------
There's nothing left but silent epitaphs.
PM MAIL WWW   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Другие СУБД | Следующая тема »


 




[ Время генерации скрипта: 0.1236 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.