Форум: "Базы";
Текущий архив: 2007.06.10;
Скачать: [xml.tar.bz2];
ВнизCase sensitivity в запросе Найти похожие ветки
← →
Draught (2007-03-22 18:46) [0]В таблице есть записи, требуется сделать выборку с определенными условиями, вроде все просто:
select * from table
но, все дело в том, что в таблице существуют записи с name=ООО "ТОННЕЛЬ" - и это не ошибка, это действительно 2 разных названия, причем даже юридически оформленых...
where name="ООО "Тоннель""
Как сделать выборку с учетом регистра?
← →
Ega23 © (2007-03-22 19:14) [1]Upper.
← →
Jan (2007-03-22 19:18) [2]UCase («stringexpr»)
Returns a Variant (String) containing the specified string, converted to uppercase.
Syntax
UCase(string)
The required string argument is any valid string expression. If string contains Null, Null is returned.
Remarks
Only lowercase letters are converted to uppercase; all uppercase letters and nonletter characters remain unchanged.
← →
Draught (2007-03-22 19:37) [3]хммм.. я либо чего-то недопонял, либо меня не поняли...
суть в том, что требуется получить из запроса:select * from table
where name="ООО "Тоннель""
записи, содержащие только ООО "Тоннель", без записей, содержащих ООО "ТОННЕЛЬ" - в базе они хранятся в различном регистре, в запросе же регистр не учитывается...
← →
sniknik © (2007-03-22 19:39) [4]
select * from table
where StrComp(name,"ООО "Тоннель"")=0
и кстати это очень плохо... индексы на вычислениях работать не будут (если они есть конечно...)
на большом обьеме надо бы сравнить, может вот так будет быстрее... (первое условие индекс использует)select * from table
where name="ООО "Тоннель"" AND StrComp(name,"ООО "Тоннель"")=0
> [1], [2]
вопрос не о том чтобы сделать нечувствительный к регистру поиск, с этим в аксессе как раз без проблем, тут наоборот сделать его регистрозависимым...
← →
sniknik © (2007-03-22 19:45) [5]+
вообще, лучше бы с названиями совсем не работать... а больше расчитывать на внутренний номер компании/записи, в смысле сделать искуственный ключ, автоинкремент например, и в дальнейшем строить запросы с его использованием...
← →
Ega23 © (2007-03-22 19:47) [6]
> вопрос не о том чтобы сделать нечувствительный к регистру
> поиск, с этим в аксессе как раз без проблем, тут наоборот
> сделать его регистрозависимым...
Нормализация?
← →
Ega23 © (2007-03-22 19:47) [7]
> sniknik © (22.03.07 19:45) [5]
Мда, долго [6] писал... :)
← →
Draught (2007-03-22 19:49) [8]ОООО, это совсем хорошо, спасиб, сейчас буду пробовать...
Сразу встречный вопрос - а как быть с Group BY?
← →
Ega23 © (2007-03-22 19:52) [9]
> Сразу встречный вопрос - а как быть с Group BY?
А что с ним не так?
← →
Draught (2007-03-22 19:54) [10]Так вот прежде чем найти этот искуственный ключ нужно сначала запись такую найти, пользователь вводит с клавиатуры название, а дальше уже поиск по справочнику...
Про Group By сейчас подумал - как раз Group By работает уже после определения номера в справочнике, соответственно группирует уже не по имени, а по номеру... так что наверное Group By name не понадобится, но все-таки на будущее ;)
← →
Draught (2007-03-22 19:54) [11]
> А что с ним не так?
А он так же регистронезависимый...
← →
sniknik © (2007-03-22 19:59) [12]> А что с ним не так?
ну он же судя по всему и группировку делает по строкам. а потом говорят это аксесс тормозит... нда. :)
а с точки зрения аксесс это две одинаковые строки.
← →
sniknik © (2007-03-22 20:01) [13]> ... а дальше уже поиск по справочнику...
ну раз он у тебя всетаки есть, этот ключ, то значит и компаниям присвоены уникальные числовые идентификаторы. так? ну а раз так, то кто мешает группировать по ним?
← →
sniknik © (2007-03-22 20:03) [14]опс... на [13] внимания не обращайте, сам както пропустил второй абзац [10] ;(
← →
Draught (2007-03-22 20:07) [15]гыыыыыыыыыыыы... бывает :)
БД нормализована, просто пользователи желают видеть быстрый поиск с клавиатуры, а реализовать его кроме как используя Filter и Filtered, я больше не представляю :(
← →
sniknik © (2007-03-22 20:14) [16]> а реализовать его кроме как используя Filter и Filtered, я больше не представляю :(
Seek
но там нужны изменения в методах/логике работы. в хелпе по Seek указаны нужные для режима настройки.
зато быстрее этого для "быстрого поиска" попросту не бывает.
← →
Draught (2007-03-22 20:18) [17]
> Seek
Спасиб, глянем про seek :)
Страницы: 1 вся ветка
Форум: "Базы";
Текущий архив: 2007.06.10;
Скачать: [xml.tar.bz2];
Память: 0.48 MB
Время: 0.046 c