Форум: "Начинающим";
Текущий архив: 2008.02.24;
Скачать: [xml.tar.bz2];
ВнизВопрос по SQL Найти похожие ветки
← →
Neo © (2008-01-28 13:56) [0]Товарищи, как сделать запрос SELECT то-то FROM того-то WHERE то-то нечувствитеьным к регистру?
← →
Palladin © (2008-01-28 13:58) [1]чего-то like того-то
← →
tomkat (2008-01-28 13:59) [2]запрос вообще-то и так не чествителен к регистру
SELECT то-то FROM того-то WHERE =
select
...
from
....
where
.....
← →
tomkat (2008-01-28 14:01) [3]если ты имел ввиду, что не чуствительным к регистру значения ПАРАМЕТРОВ
то так и скажи :-)
← →
Sergey13 © (2008-01-28 14:01) [4]> [0] Neo © (28.01.08 13:56)
Надо сделать инъекцию, переводящую и то и это к одному регистру.
← →
homm © (2008-01-28 14:05) [5]> [4] Sergey13 © (28.01.08 14:01)
> Надо сделать инъекцию,
Может лучше сделать коньюкцию? %)
← →
Neo © (2008-01-28 14:09) [6]нет, в том то и дело что чувствителен - запрос типа "SELECT COUNT(*) FROM "+TabName+" WHERE "+Request+" = ADUM14" и такой же самый только в конце пишем скажем Adum14, дают разные результаты, которые правильны оба, поскольку в базе встречается и так и так пишут - и верхним и нижним регистром... вот и я хочу сдлать чтобы было нечувствительно к регистру. Оператор же LIKE находит похожее, но все равно учитывает регистр - уже проверил.
← →
tomkat (2008-01-28 14:12) [7]
where upper(Request)=upper("ADUM14")
а вообще-то нада запрос с параметрами использоватьwhere upper(Request)=upper(:param)
← →
Sergey13 © (2008-01-28 14:13) [8]> [5] homm © (28.01.08 14:05)
Лишь бы не фрикцию или фелляцию. 8-)
← →
Neo © (2008-01-28 14:27) [9]> tomkat (28.01.08 14:12) [7]
> where upper(Request)=upper("ADUM14")
Это же просто приводит к тому, что ищется в верхнем регистре и все... а мне нужно чтобы искало и в нижнем и в верхнем и комбинированно,т.е. чтобы, скажем, запросы adum14, ADUM14 и Adum14 воспринимались одиннаково.
← →
tomkat (2008-01-28 14:29) [10]
> Это же просто приводит к тому, что ищется в верхнем регистре
> и все
!!!! дак у тебя ВСЕ значения поля приводятся к верхнему регистру ! ВСЕ !!!
и ты сравниваеш с образцом тоже в верхнем регистре ...
← →
Palladin © (2008-01-28 14:29) [11]в сад
← →
Neo © (2008-01-28 14:37) [12]Товрищи, прога делается для бухов, у бухов там в полный финиш в смысле этих чертовых регистров.
> !!!! дак у тебя ВСЕ значения поля приводятся к верхнему
> регистру ! ВСЕ !!!
> и ты сравниваеш с образцом тоже в верхнем регистре ...
может оно итак, но только если брать запрос adum14, то будет искаться количество именно adum14. а надо чтобы все вместе - и adum14 и ADUM14 и Adum14.
← →
tomkat (2008-01-28 14:46) [13]ты не вериш ?
ты попробуй !
вот как думаеш, что вернет функция UPPER(adum14) ? а UPPER(Adum14) ?
← →
Neo © (2008-01-28 15:03) [14]
> вот как думаеш, что вернет функция UPPER(adum14) ? а UPPER(Adum14)
> ?
Конечно возвращает то, что должна возвращать - то же самое что при запросе ADUM14. т.е. это ф-ия уравнивает запросы adum14, Adum14 и ADUM14 единственно к верхнему регистру, т.е. к ADUM14. А вот если искать как раньше - получается что при запросах Adum14 и adum14 результаты иные, чем когда использовать UPPER...
← →
Anatoly Podgoretsky © (2008-01-28 15:04) [15]> Neo (28.01.2008 14:37:12) [12]
Чукча не читатель.
← →
tomkat (2008-01-28 15:05) [16]
> А вот если искать как раньше
так не нада :-)
← →
homm © (2008-01-28 15:14) [17]> [14] Neo © (28.01.08 15:03)
Подними руки чуть выше туловища, начни сводить их вместе. Вскоре на их пути встретится некий шарообразный волосатый предмет. Это башка. В ней находится мозг. Попробуй использовать его при очередном фтыкании в одну единственную строчку кода из [7].
Помимо указанного способа можно еше указать формат регистронечувствительный для полей, по котрым производится поиск, или использовать функцию, специально-оговоренно-регистро-нечувствительную. Все зависит от возможностей твоего SQL сервера.
← →
altatr © (2008-01-28 17:09) [18]В моей программе работает так (компонент Query) может подойдет...
SQL.Add("SELECT NAME"); // по каким полям будем делать выборку
SQL.Add("FROM ":AUTOBASE:voditeli.dbf""); // в какой базе данных и таблице будем искать
SQL.Add("WHERE");
SQL.Add("(UPPER (NAME)= ""+ f +"")") // сравниваем поле NAME с переменной f
Переменной f присвоить значение какогонибудь EDITa у которого в свойстве CharCase проставить ecUpperCase. Или самому писать все заглавными буквами. Какими будут буквы в поле NAME - всеравно. Программа будет видеть их все заглавными.
← →
Amoeba © (2008-01-28 17:28) [19]
> Neo © (28.01.08 15:03) [14]
>
>
> > вот как думаеш, что вернет функция UPPER(adum14) ? а UPPER(Adum14)
> > ?
>
>
> Конечно возвращает то, что должна возвращать - то же самое
> что при запросе ADUM14. т.е. это ф-ия уравнивает запросы
> adum14, Adum14 и ADUM14 единственно к верхнему регистру,
> т.е. к ADUM14. А вот если искать как раньше - получается
> что при запросах Adum14 и adum14 результаты иные, чем когда
> использовать UPPER...
Надо же быть таким дубом после того как тебе неоднократно все разжевали и в рот положили.
← →
ketmar © (2008-01-28 17:34) [20]>[17] homm ©(28.01.08 15:14)
>Это башка. В ней находится мозг.
оптимист.
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2008.02.24;
Скачать: [xml.tar.bz2];
Память: 0.49 MB
Время: 0.049 c