Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > БД в Delphi
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 13.01.2011, 09:19   #11
evg_m
Старожил
 
Регистрация: 20.04.2008
Сообщений: 5,543
По умолчанию

Цитата:
Запись не выводиться если поле, учавсвующее в выражении LIKE пустое, !но!
NULL только в том случае если в него никогда ничего не вводили.
'было что-то' А вот если там когда-то что-то было
'', но удалили,

видимо LIKE предполагает что пустые поля(NULL) не нужны при поиске.
Код:
ifthen(fltr<>'', 'LIKE filed '+qoutedstr('%'+fltr+'%'), '')
программа — запись алгоритма на языке понятном транслятору

Последний раз редактировалось evg_m; 13.01.2011 в 09:22.
evg_m вне форума Ответить с цитированием
Старый 13.01.2011, 09:29   #12
vovk
!=
Участник клуба
 
Аватар для vovk
 
Регистрация: 08.09.2008
Сообщений: 1,751
По умолчанию

Цитата:
Сообщение от evg_m Посмотреть сообщение

видимо LIKE предполагает что пустые поля(NULL) не нужны при поиске.
Код:
ifthen(fltr<>'', 'LIKE filed '+qoutedstr('%'+fltr+'%'), '')
в общем то я про NULL после вот этого
Цитата:
Сообщение от Sergio_O Посмотреть сообщение
Найдена интересная закономерность:
Запись не выводиться если поле, учавсвующее в выражении LIKE пустое, !но! только в том случае если в него никогда ничего не вводили. А вот если там когда-то что-то было, но удалили, то запрос находит эту запись.
написал
vovk вне форума Ответить с цитированием
Старый 13.01.2011, 09:43   #13
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

На примере MS SQL:
1. Запрос с условием A=0 не вернёт записи у которых A=NULL потому что 0<>NULL. Чтобы вернуть в т.ч. записи у которых A=NULL нужно условие COALESCE(A,0)=0 или A=0 or A IS NULL
2. Запрос с условием B='' не вернёт записи у которых B=NULL потому что ''<>NULL и т.д.
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 13.01.2011, 10:54   #14
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

evg_m, я согласен с мнением коллег vovk и Аватар - скорее всего проблема связана именно с NULL

и Вы не совсем правы, разные СУБД по разному интерпретируют пустые строки (в Oracle, например, настраивается в ядре. по умолчанию (по крайней мере до версии 10 включительно) пустая строка интерпретируется как NULL
т.е.
update MyTable
set Pole1 = ''
и после запрос
select * from MyTable where Pole1 = ''
не вернёт НИ ОДНОЙ ЗАПИСИ.

и вообще, любая операция с операндом равным NULL возвращает NULL
Это понять невозможно. Это надо только принимать как есть!
Serge_Bliznykov вне форума Ответить с цитированием
Старый 13.01.2011, 12:17   #15
evg_m
Старожил
 
Регистрация: 20.04.2008
Сообщений: 5,543
По умолчанию

Цитата:
NULL только в том случае если в него никогда ничего не вводили.
'было что-то' А вот если там когда-то что-то было
'', но удалили,
попытка наглядно объяснить автору различие между пустым значение(NULL) и пустой строкой (''). И то что удаление текста (='') не есть обнуление значения. (=NULL).
Видимо она не удалась. Ну и решение начальной проблемы на стороне клиента. Решение на стороне сервера уже было дано. Hазве что предложить
like ISNULL(fld,'') .....
программа — запись алгоритма на языке понятном транслятору

Последний раз редактировалось evg_m; 13.01.2011 в 12:21.
evg_m вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Java.iReport.В блоке detail выводится неверный результат. Может кто знает, как верно. Aida_K JavaScript, Ajax 0 10.10.2010 17:00
Почему сумма выдает неверный результат? KNatalia Microsoft Office Excel 4 26.05.2010 14:50
результат выдает -Nan- Тонущий коржик Помощь студентам 2 25.11.2009 23:28
Неверный запрос Gromsky SQL, базы данных 9 21.08.2009 18:25
В чем ошибка в запросе?неверный результат =( Lunatikus SQL, базы данных 3 26.11.2007 09:50