powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / как обрабатывается NULL?
25 сообщений из 66, страница 1 из 3
как обрабатывается NULL?
    #39235237
zigorzn
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый день.

select * from table1 t1 where t1.field1=:pr1
если параметр =NULL, то запрос работает с данными в таблице. Я предполагал, что не должен.

Aналогично и с join, при t0.field1=NULL , происходит работа с table1
select * from table0 t0
left join table1 t1 on t1.field1=t0.field1

(LI-V6.3.5.26952, LI-V6.3.4.26856, WI-V6.3.2.26540)
...
Рейтинг: 0 / 0
как обрабатывается NULL?
    #39235241
Фотография wadman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
zigorznЯ предполагал, что не должен.
Null это такое же значение, как и 1 и 2 и з и т.п.
...
Рейтинг: 0 / 0
как обрабатывается NULL?
    #39235243
Фотография wadman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
wadmanкак и 1 и 2 и 3 и т.п.
Интересная опечатка... :)
...
Рейтинг: 0 / 0
как обрабатывается NULL?
    #39235249
Фотография kdv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
zigorzn,

запрос
Код: sql
1.
select * from table1 t1 where t1.field1=:pr1


при null в параметре pr1 ничего не выдаст, даже если есть записи с null в t.field1.
Потому что t.field = null тоже ничего не выдаст.

Другое дело, что некоторые компоненты, видя null в :pr1 могут менять текст запроса на where t1.field1 is null. В остальных случаях запрос остается неизменным, т.е. с t.field1=:pr1.

zigorznзапрос работает с данными в таблице
в смысле?

zigorznAналогично и с join, при t0.field1=NULL , происходит работа с table1
a left join b
выведет все записи в a и соответствующие (не null) в таблице b. Или у вас как-то не так?
http://www.ibase.ru/joins/
...
Рейтинг: 0 / 0
как обрабатывается NULL?
    #39235253
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
zigorznЯ предполагал, что не должен.
RTFM: http://www.firebirdsql.org/manual/nullguide.html
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
как обрабатывается NULL?
    #39235256
Фотография kdv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry Sibiryakov,

да непонятно, что он предполагал. Его первое утверждение неверно (про "работает"), а второе верно, но только в определенном смысле, и непонятно в каком для него.
Как должно "не работать"? Что такое вообще "происходит работа"? Должно выдавать сообщение об ошибке, что-ли?
...
Рейтинг: 0 / 0
как обрабатывается NULL?
    #39235302
zigorzn
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
количество записей в таблице 5694466
количество записей с field1=NULL в таблице 74590

select * from table1 t1 where t1.field1=null
результат "пусто"

статистика показывает 74590 индексированных чтений.
...
Рейтинг: 0 / 0
как обрабатывается NULL?
    #39235307
zigorzn
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
select * from table0 t0
left join table1 t1 on t1.field1=t0.field1

если t0.field1=NULL "n" штук, то выдаёт n*74590 индексированных чтений
...
Рейтинг: 0 / 0
как обрабатывается NULL?
    #39235310
Фотография DarkMaster
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
zigorzn,

FIELD IS NULL!!!
...
Рейтинг: 0 / 0
как обрабатывается NULL?
    #39235312
Фотография DarkMaster
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
zigorzn,

Код: sql
1.
select * from table1 t1 where t1.field1 is null



Ты какую-то фигню в запросе сгородил в общем...
...
Рейтинг: 0 / 0
как обрабатывается NULL?
    #39235315
Фотография kdv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DarkMaster,

я думаю, вопрос не "почему ничего не выводится", а "с какого буя идут индексные чтения при идиотском field = null, которое никогда ничего не вернет, по определению".
...
Рейтинг: 0 / 0
как обрабатывается NULL?
    #39235331
Фотография DarkMaster
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kdv,

Тут наверное только hvlad или dimitr могут ответить вразумительно. Такое впечатление, что =NULL как-то преобразуется в IS NULL.

P.S. Может на =NULL в SELECT`ах нужно вообще ругань выводить об ошибке синтаксиса?
...
Рейтинг: 0 / 0
как обрабатывается NULL?
    #39235347
dimitr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kdvс какого буя идут индексные чтения при идиотском field = null, которое никогда ничего не вернет, по определению
примерно с того же, что и при 1 = 0 неиндексные чтения :-)

DarkMasterМожет на =NULL в SELECT`ах нужно вообще ругань выводить об ошибке синтаксиса?
не надо придумывать отсебятину
...
Рейтинг: 0 / 0
как обрабатывается NULL?
    #39235368
zigorzn
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
спасибо. "с какого буя идут индексные чтения" - это то что и хотел спросить

:pr1=-52221542 (нет такого значения), то выбрано "пусто" и статистика=0
:pr1=Null, то выбрано "пусто" и статистика=74590
...
Рейтинг: 0 / 0
как обрабатывается NULL?
    #39235371
Фотография DarkMaster
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dimitr,

Гм... А использование FIELD=NULL в SELECT - это чего? Не отсебятина?
...
Рейтинг: 0 / 0
как обрабатывается NULL?
    #39235416
Фотография kdv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DarkMaster,

не уверен, побороли-ли в ИБ field=:param при null, что-то вроде было на тему null и индексов, надо проверять на таблице побольше, но
Код: sql
1.
2.
select * from employee
where emp_no=null


выдает
Invalid token.
Dynamic SQL Error.
SQL error code = -104.
Token unknown - line 2, char 13.
null.

emp_no is null, разумеется, без проблем.
...
Рейтинг: 0 / 0
как обрабатывается NULL?
    #39235423
Мимопроходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Hello, Kdv!
You wrote on 13 мая 2016 г. 17:05:34:

Kdv> Token unknown - line 2, char 13.
> null.они там совсем ипанулись уже?

Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
как обрабатывается NULL?
    #39235438
Фотография kdv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Мимопроходящий,

почему ипанулись-то? field = null это явно ахинея. field is null - рабочая конструкция. Зачем допускать то, что бессмыслено?
...
Рейтинг: 0 / 0
как обрабатывается NULL?
    #39235451
hvlad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kdvпочему ипанулись-то? field = null это явно ахинея. field is null - рабочая конструкция. Зачем допускать то, что бессмыслено?Здесь нет синтаксической ошибки
...
Рейтинг: 0 / 0
как обрабатывается NULL?
    #39235457
Мимопроходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Hello, Hvlad!
You wrote on 13 мая 2016 г. 17:26:42:

Hvlad> Здесь нет синтаксической ошибки+500

зы: пид папуасы, сэр! (с)
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
как обрабатывается NULL?
    #39235508
Фотография kdv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hvladЗдесь нет синтаксической ошибки
я бы не согласился. field = null это всегда false, пожизненно. Смысла в такой конструкции не вижу. Если быть совсем точным, ИБ должен был сообщить что = null недопустимо, надо использовать is null. С такой формулировкой, думаю, было бы вполне ок.
Чудаков надо отсекать на начальном этапе, чем раньше, тем лучше.

Вообще, с точки зрения парсера SQL много где нет синтаксических ошибок. но есть логические. Типичный пример - ambiguous fields. Или from a, b join c. И т.д. Ошибки вроде нет, но получается фигня. Тем не менее, Firebird отшивает такие конструкции, именно сообщая об ошибке.
...
Рейтинг: 0 / 0
как обрабатывается NULL?
    #39235511
Мимопроходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
нутром чую, кто-то уже нетрезв...
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
как обрабатывается NULL?
    #39235521
Гаджимурадов Рустам
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Рано.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
как обрабатывается NULL?
    #39235601
hvlad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kdvhvladЗдесь нет синтаксической ошибки
я бы не согласился. field = null это всегда false, пожизненно.И даже field = :param ?

И что, 0=1 запретишь писать ? :)
...
Рейтинг: 0 / 0
как обрабатывается NULL?
    #39235650
Фотография kdv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hvladИ даже field = :param ?
шутки шуткуешь?
hvladИ что, 0=1 запретишь писать ? :)
null не является нормальным значением. не бывает ничего, равного null (=null). Есть только is null.
...
Рейтинг: 0 / 0
25 сообщений из 66, страница 1 из 3
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / как обрабатывается NULL?
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]