![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Регистр символов и таблица в памяти [D6, IB6.x]
Дмитрий К. © (2003-09-18 14:58:00)
Уважаемые мастера!
Есть срочный вопрос.Каким оразом при SQL запросе к IB базе данных можно игнорировать регистр символов,т.е. уовнять "A" и "a".
И ещё как создать таблицу в памяти, чтобы к ней можно было посылать запросы.
Буду признателен за ответ.
Zacho (2003-09-18 15:29:00) [1]
> Дмитрий К. (18.09.03 15:20) [6]
> При такой постановке запоса не выдаёт ничего
> select * from T$CLIENTS, T$ITEMS where upper(ITMTEXT COLLATE
> PXW_CYRL) like "%авто%" and T$CLIENTS.ID=T$ITEMS.CLIENTID
Правильно:
select * from T$CLIENTS, T$ITEMS where upper(ITMTEXT COLLATE PXW_CYRL) like "%АВТО%" and T$CLIENTS.ID=T$ITEMS.CLIENTID
или
select * from T$CLIENTS, T$ITEMS where upper(ITMTEXT COLLATE PXW_CYRL) like UPPER("%авто%") and T$CLIENTS.ID=T$ITEMS.CLIENTID
Romkin (2003-09-18 15:29:00) [2]
:))))))
Ага, преобразовал строку в веррхний регистр и сравнил с нижним...
like "%АВТО%" ессно надо.
Может, иногда не помешает подумать, что именно делаешь?
Sandman25 (2003-09-18 15:26:00) [3]
select * from T$CLIENTS, T$ITEMS where upper(ITMTEXT COLLATE PXW_CYRL) like "%АВТО%" and T$CLIENTS.ID=T$ITEMS.CLIENTID
Upper преобразовывает к прописным буквам, а Вы затем результат сравнивали с "%авто%"
Дмитрий К. (2003-09-18 15:20:00) [4]
При такой постановке запоса не выдаёт ничего
select * from T$CLIENTS, T$ITEMS where upper(ITMTEXT COLLATE PXW_CYRL) like "%авто%" and T$CLIENTS.ID=T$ITEMS.CLIENTID
а если
select * from T$CLIENTS, T$ITEMS where ITMTEXT like "%авто%" and T$CLIENTS.ID=T$ITEMS.CLIENTID
всё в порядке, но только естественно с регистром проблема остаётся.
Nikolay M. (2003-09-18 15:16:00) [5]
> Дмитрий К. (18.09.03 15:04) [3]
> типа select * from clients where upper(text) like "%запро%"?
Лучше, если
select * from clients where upper(text) like "% ЗАПРО%"
NickBat (2003-09-18 15:09:00) [6]
Если уж чтобы совсем везде работало то так:
upper(field COLLATE PXW_CYRL) like
Дмитрий К. (2003-09-18 15:04:00) [7]
типа select * from clients where upper(text)like "%запро%" ?
Nikolay M. (2003-09-18 15:01:00) [8]
> Каким оразом при SQL запросе к IB базе данных можно игнорировать
> регистр символов,т.е. уовнять "A" и "a".
Зависит от запроса. Но часто помогают функции UPPER/LOWER (UPCASE? не помню, как это в ИБ).
> И ещё как создать таблицу в памяти, чтобы к ней можно было
> посылать запросы.
Да посылай ты эти запросы... к таблице... :) Дались они тебе.. Да еще в памяти...
Zacho (2003-09-18 14:59:00) [9]
> Дмитрий К. (18.09.03 14:58)
> Уважаемые мастера!
> Есть срочный вопрос.Каким оразом при SQL запросе к IB базе
> данных можно игнорировать регистр символов,т.е. уовнять
> "A" и "a".
UPPER
> И ещё как создать таблицу в памяти, чтобы к ней можно было
> посылать запросы.
Никак. Разве что свой движок напишешь, позволяющий такое.