Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 2007.06.10;
Скачать: [xml.tar.bz2];

Вниз

Case sensitivity в запросе   Найти похожие ветки 

 
Draught   (2007-03-22 18:46) [0]

В таблице есть записи, требуется сделать выборку с определенными условиями, вроде все просто:
select * from table
where name="ООО "Тоннель""
но, все дело в том, что в таблице существуют записи с name=ООО "ТОННЕЛЬ" - и это не ошибка, это действительно 2 разных названия, причем даже юридически оформленых...

Как сделать выборку с учетом регистра?


 
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
2-1179470344
FIL-23
2007-05-18 10:39
2007.06.10
функция или процедура проверяющая правельность введеной даты


1-1176549475
gosha73
2007-04-14 15:17
2007.06.10
Утечка памяти в TOpenDialog?


1-1176362909
soi.hash
2007-04-12 11:28
2007.06.10
Авто-скрул в Memo


3-1174320576
alexey_mas
2007-03-19 19:09
2007.06.10
установка курсора


2-1179482555
Ol4ik
2007-05-18 14:02
2007.06.10
Нужна помощь!





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский