powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / как обрабатывается NULL?
66 сообщений из 66, показаны все 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
как обрабатывается NULL?
    #39236314
Мимопроходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Hello, Kdv!
You wrote on 16 мая 2016 г. 10:39:17:

Kdv> null не является нормальным значением. не бывает ничего, равного null (=null). Есть только is null.
не нужно запрещать то, что не ограничено стандартом.

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

никто и не собирался это запрещать :)
...
Рейтинг: 0 / 0
как обрабатывается NULL?
    #39236335
Мимопроходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Hello, Hvlad!
You wrote on 16 мая 2016 г. 10:58:37:

Hvlad> никто и не собирался это запрещать :)на дебаркадере ж запретили.
ну не папуасы ли?!

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

ну ладно, идеологический такой запрет почему-то приводит в ужас. А практически? Нормально же все.
...
Рейтинг: 0 / 0
как обрабатывается NULL?
    #39236367
Мимопроходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Hello, Kdv!
You wrote on 16 мая 2016 г. 11:27:55:

Kdv> ну ладно, идеологический такой запрет почему-то приводит в ужас. А практически? Нормально же все.
А я так понимаю: Если закон один раз подмять, потом другой раз, потом начинать дырки в следствии затыкать,
как нам с тобой будет удобно, то это не закон будет, а кистень! (с)

зы: вообще-то, что там на дебаркадере происходит, глубоко наплевать.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
как обрабатывается NULL?
    #39236380
hvlad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kdvА практически? Нормально же все.Выдать ошибку в синтаксическе корректном запросе - это нормально ?
...
Рейтинг: 0 / 0
как обрабатывается NULL?
    #39236433
Фотография kdv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hvlad,

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

допустим, NULL = "НИЗНАЮ".

к примеру, в некой базе:
возраст Васи 25 лет.
возраст Пети NULL.

запросы:

1) старше Петя за Васю?
ну, с Петей понятно, ему 25.
а вот возраст Васи = НИЗНАЮ, соответственно ответ выражения (25 > НИЗНАЮ) = НИЗНАЮ.


2) сколько лет Васе и Пете вместе?
25 + НИЗНАЮ = НИЗНАЮ.
Код: sql
1.
(25 + NULL) = NULL




3) вывести на экран всех, кто старше за Васю
Код: sql
1.
SELECT T.* FROM TABLENAME T WHERE (T.AGE > 25)


возраст Пети = НИЗНАЮ, с какого перепугу оно должно попадать в выборку?


4) вывести на экран всех, чей возраст я НИЗНАЮ.
Код: sql
1.
SELECT T.* FROM TABLENAME T WHERE (T.AGE = NULL)


вот шо здесь должна вернуть СУБД?
отдельно и самостоятельно нужно задуматься за то, больше ли значение НИЗНАЮ от значения НИЗНАЮ?


5)хотя, при всём, можно у той же СУБД спросить: выведи всех, чей возраст ты (СУБД) не знаешь
Код: sql
1.
SELECT T.* FROM TABLENAME T WHERE (T.AGE IS NULL)


или наоборот: выведи всех, чей возраст ты (СУБД) знаешь
Код: sql
1.
SELECT T.* FROM TABLENAME T WHERE (T.AGE IS NOT NULL)
...
Рейтинг: 0 / 0
как обрабатывается NULL?
    #39236885
Фотография kdv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PEAKTOPSELECT T.* FROM TABLENAME T WHERE (T.AGE = NULL)
вот шо здесь должна вернуть СУБД?
отдельно и самостоятельно нужно задуматься за то, больше ли значение НИЗНАЮ от значения НИЗНАЮ?
какому-то мозгоклюю пришло в голову, что = NULL это неправильно, и вместо = надо использовать IS. С тех пор все мучаются.
...
Рейтинг: 0 / 0
как обрабатывается NULL?
    #39236893
Фотография PEAKTOP
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kdvPEAKTOPSELECT T.* FROM TABLENAME T WHERE (T.AGE = NULL)
вот шо здесь должна вернуть СУБД?
отдельно и самостоятельно нужно задуматься за то, больше ли значение НИЗНАЮ от значения НИЗНАЮ?
какому-то мозгоклюю пришло в голову, что = NULL это неправильно, и вместо = надо использовать IS. С тех пор все мучаются.

мой пост перечитать ещё раз.

я вот об этом и говорю: СУБД, дай мне товрищей, возраст которых я НИЗНАЮ.
вот откуда СУБД возьмёт эти значения?
и это - не мозгоё.., с точки зрения Булевой логики - всё правильно.

то ли дело: СУБД, дай мне товарищей, возраст которых ТЫ не знаешь
Код: sql
1.
SELECT T.* FROM TABLENAME T WHERE (T.AGE IS NULL)
...
Рейтинг: 0 / 0
как обрабатывается NULL?
    #39236912
Фотография kdv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PEAKTOP,

ты знаешь, субд знает... ты ударился в философствование. Я при вводе не знаю, поэтому НЕ указал значение, поэтому СУБД записала NULL. Она знает, что ты не знаешь.
Собственно, я про конструкцию IS NULL, которая удовлетворяет теоретиков языка SQL и трехзначной логики. Которая является в том числе звездецом для параметризированных запросов, которые не могут искать null по определению, для чего придумывают всякие костыли.
...
Рейтинг: 0 / 0
как обрабатывается NULL?
    #39236914
YuRock
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kdvкакому-то мозгоклюю пришло в голову, что = NULL это неправильно, и вместо = надо использовать IS. С тех пор все мучаются.
Логику можно понять. Но не совсем так.
"??? = NULL" - это правильная запись, корректная.
Чтобы ни было вместо ??? - в результате будет неизвестно, равно ли оно "неизвестно". Т.к. даже
"неизвестно" неизвестно, равно ли "неизвестно". Это логично и верно.
И потому "??? = NULL" - корректная запись. Такая же корректная, как и "1=1" или "1=2".
...
Рейтинг: 0 / 0
как обрабатывается NULL?
    #39236918
YuRock
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Т.е., я хотел сказать, что
" = NULL" - это правильно. Так же правильно, как и "1=2".
...
Рейтинг: 0 / 0
как обрабатывается NULL?
    #39236921
Фотография kdv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
YuRock,

еще раз. = null по вашему правильно так же, как = 1 или = 2. Ок. Но = null ничего не выдаст, никогда. Потому что кто-то придумал, что выводить записи с null при поиске = null некрасиво, и вместо = null надо использовать is null, чтобы не смущать умы начинающих спецификой трехзначной логики.
И этот кто-то не учел, что в field = :param кроме значений могут передавать и null. Но в этом случае надо как-то заменять fied = :param на field is null. Т.е. сначала узнать, что в параметре, а только потом формировать запрос. Вот это "синтаксически нормально"?

Впрочем, это все риторика. Лично я считаю, что = null синтаксически некорректно, по двум причинам - null это ключевое слово, а = null - логическая бессмыслица, ибо всегда false. И контр-пример в виде 1 = 2 не катит, потому что его можно заменить на :param = :param, в котором null точно так же работать не будет.
...
Рейтинг: 0 / 0
как обрабатывается NULL?
    #39236927
YuRock
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kdvеще раз. = null по вашему правильно так же, как = 1 или = 2. Ок.
Нет, не ок :)

Я имел ввиду, что (??? = null) так же правильно, как и "1=2". Т.е. эвивалентно. Но не просто "=1" или "=2".

При =null не выдаст записи? Мне так и надо.
Когда я в параметр запроса "определить, чей возраст больше :PARAM" в :PARAM передаю "неизвестно", т.е. NULL (пользователь ничего не выбрал, или справочник не заполнен или мало ли что), то я однозначно ожидаю в результате 0 записей. А совсем не набор записей, у который возраст людей не указан. Именно так логично, а не автоматом заменять логику на неверную (если заменять на IS NULL).
Т.к. запрос "определить, у кого возраст не заполнен" совершенно не эквивалентен запросу "определить, чей возраст больше :PARAM".
...
Рейтинг: 0 / 0
как обрабатывается NULL?
    #39236940
Гаджимурадов Рустам
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kdv> по двум причинам - null это ключевое слово

Странная логика. А с константами сравнивать тоже нельзя?

kdv> а = null - логическая бессмыслица, ибо всегда false

Ну вот, столько писал и под конец выдал...
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
как обрабатывается NULL?
    #39236953
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ключевое или не ключевое слово всё равно. TRUE и FALSE тоже ключевые слова, однако сравнение с ними даёт совсем другой результат.

NULL штука особенная, а потому с ней надо использовать другой оператор сравнения. NULL это не значение, а состояние.

Что касается передачи NULL в параметры, то тут как раз всё нормально.

Код: sql
1.
SELECT * FROM T WHERE a =?


Это даже можно использовать. Например передав NULL я совершенно уверен, что запрос ничего не вернёт.
...
Рейтинг: 0 / 0
как обрабатывается NULL?
    #39236978
Фотография PEAKTOP
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Симонов ДенисНапример передав NULL я совершенно уверен, что запрос ничего не вернёт.

вот и ПроктоСтоматологи подтянулись....

--------
я ждал именно вас, товарищи!
вы не поверите!

но никто лучше вас проблематику NULL не опишет.
...
Рейтинг: 0 / 0
как обрабатывается NULL?
    #39236982
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PEAKTOP,

нет там никакой проблематики. Есть проблемы у новичков с недопониманием, прогибаться под них не имеет смысла.
...
Рейтинг: 0 / 0
как обрабатывается NULL?
    #39236988
Гаджимурадов Рустам
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Симонов Денис> NULL штука особенная, а потому с ней надо
Симонов Денис> использовать другой оператор сравнения.

А вот это как раз риторика, о которой говорил Дима. :)

Симонов Денис> Это даже можно использовать. Например передав
Симонов Денис> NULL я совершенно уверен, что запрос ничего не вернёт.

Можно-то можно. Но не нужно. Практического смысла в этом нет.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
как обрабатывается NULL?
    #39237006
Фотография kdv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Гаджимурадов РустамА вот это как раз риторика, о которой говорил Дима.
Риторика - это разговоры на эту тему. Все равно никто стандарт sql менять не будет.
А насчет ИБ - ну выдает where field = null ошибку синтаксиса. А что, такую конструкцию кто-то в здравом уме пишет? Ну пишут иногда 1=2. Но писать 1=null вроде пока никто не додумался, хоть на ИБ, хоть на ФБ.
...
Рейтинг: 0 / 0
как обрабатывается NULL?
    #39237017
Гаджимурадов Рустам
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kdv> Риторика - это разговоры на эту тему. Все равно никто стандарт sql менять не будет.

Именно.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
как обрабатывается NULL?
    #39237188
Мимопроходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Hello, Kdv!
You wrote on 17 мая 2016 г. 11:28:35:

Kdv> А насчет ИБ - ну выдает where field = null ошибку синтаксиса.
> А что, такую конструкцию кто-то в здравом уме пишет? Ну пишут иногда 1=2.
> Но писать 1=null вроде пока никто не додумался, хоть на ИБ, хоть на ФБ.
при динамическом построении запроса автоматической подсистемой - запросто.
(если не озадачиться её допиливанием на предмет IS NULL)
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
как обрабатывается NULL?
    #39237271
Фотография DarkMaster
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МимопроходящийKdv> Но писать 1=null вроде пока никто не додумался, хоть на ИБ, хоть на ФБ.
при динамическом построении запроса автоматической подсистемой - запросто.
(если не озадачиться её допиливанием на предмет IS NULL)


+100. Таких систем не одна и даже не несколько - особенно там, где пользователю дают относительную свободу действий.
...
Рейтинг: 0 / 0
как обрабатывается NULL?
    #39237337
Гаджимурадов Рустам
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну, динамические запросы от/при параметрах не особо помогут.
Поэтому и пишут всякие "= :a or is null".
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
как обрабатывается NULL?
    #39237362
Фотография Док
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Мимопроходящий(если не озадачиться её допиливанием на предмет IS NULL)
Так ты ж вроде за этот "неестественный интеллект" фибы и критиковал ;)
...
Рейтинг: 0 / 0
как обрабатывается NULL?
    #39237367
Гаджимурадов Рустам
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ты это... не путай... Фибы критиковать - это святое.
Он бы их критиковал, даже если бы они были тупые
как молоток, без всякого "неестественного интеллекта". :)
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
как обрабатывается NULL?
    #39237415
Фотография DarkMaster
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Гаджимурадов РустамОн бы их критиковал, даже если бы они были тупые
как молоток, без всякого "неестественного интеллекта". :)


"Ну они и тупые!" (c)
...
Рейтинг: 0 / 0
как обрабатывается NULL?
    #39237430
fb user
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
kdvА насчет ИБ - ну выдает where field = null ошибку синтаксиса.
А FB будет выдавать warning, так же как и при "where IntField = StrField", с возможностью "threat warnings as errors". Просто потому что это удобней в использовании.
...
Рейтинг: 0 / 0
как обрабатывается NULL?
    #39237438
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
предлагаю завершить сей бессмысленный спор.
...
Рейтинг: 0 / 0
как обрабатывается NULL?
    #39237451
Мимопроходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Hello, Fb User!
You wrote on 17 мая 2016 г. 14:42:13:

Fb User> А FB будет выдавать warningнеказистые мечты юного чукоцкого оленевода...

Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
как обрабатывается NULL?
    #39237488
zigorzn
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый день.

ВОТ КАК ВСЁ БЫЛО....

Возникла проблема в запросе с join.
Потом выловил из за чего:

select * from <table1> t1 where t1.field1=:pr1
при :pr1 = null
количество записей в таблице 5694466
количество записей с field1=NULL в таблице 74590


Уточнили вопрос/проблему "с какого буя идут индексные чтения?".

select * from <table0> t0
left join <table1> t1 on t1.field1=t0.field1
where t0.mdate=:param_date

если t0.field1=NULL "n" штук, то выдаёт n*74590 индексированных чтений

если результат выборки <table0> вернул 2300 строк, из них <table0>.field1=NULL 2000 шт, то получается
(2000 * 74590 = ) 149 180 000 ненужных индексированных чтений из <table1>.

хотелось бы, что бы эти ненужные индексные чтения не выполнялись.
...
Рейтинг: 0 / 0
как обрабатывается NULL?
    #39237492
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
zigorzn,

тут дело не только в null'ах. И ответ был дан практически сразу. Оптимизатор не учитывает заведомо ложные условия. В запросе

Код: sql
1.
SELECT * FROM T WHERE 1=2


точно так же будут ненужные не индексированные чтения, хотя их можно было бы избежать. Возможно это будет исправлено в следующих версиях.
...
Рейтинг: 0 / 0
как обрабатывается NULL?
    #39237505
Мимопроходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а хотите поржать?
смотрите сюда.
внимательно!
...
Рейтинг: 0 / 0
как обрабатывается NULL?
    #39237510
Мимопроходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
да, кстати, в FB1.5 (диалект 1) тоже самое
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
как обрабатывается NULL?
    #39237528
Фотография kdv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Мимопроходящий,

то есть, папуасом оказался кто-то из трех - Старки, Харрисон, или Борланд.
...
Рейтинг: 0 / 0
как обрабатывается NULL?
    #39237560
Мимопроходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Hello, Kdv!
You wrote on 17 мая 2016 г. 15:54:28:

Kdv> то есть, папуасом оказался кто-то из трех - Старки, Харрисон, или Борланд.ага
а я тут на дебаркадер наехал...

зы: такое поведение сохранено до 1.5 включительно, независимо от диалекта.
в 2.5 этого уже нет.
за 2.0, 2.1 не знаю, не проверял.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
как обрабатывается NULL?
    #39237563
dimitr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
скажу больше - NULL как значение в парсер добавлял я :-)

чтиво на ночь
...
Рейтинг: 0 / 0
как обрабатывается NULL?
    #39237565
dimitr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
самое забавное, что там KDV защищает эту фичу :-)
...
Рейтинг: 0 / 0
как обрабатывается NULL?
    #39237580
fb user
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
dimitrсамое забавное, что там KDV защищает эту фичу :-)
35 уроков жизни от Смешариков:
http://www.adme.ru/tvorchestvo-kino/uroki-zhizni-ot-smesharikov-776160/ 29. У меня такое ощущение, что у кого с совестью нет проблем, у того и с памятью все в порядке.

А у кого нет проблем с совестью?
...
Рейтинг: 0 / 0
как обрабатывается NULL?
    #39237600
Гаджимурадов Рустам
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Мимопроходящий> да, кстати, в FB1.5 (диалект 1) тоже самое

Третий тоже.

dimitr> чтиво на ночь ... самое забавное, что там KDV защищает эту фичу :-)


Да, весьма забавно. Вообще, тред интересный.
Gen_Id(, Null) додуматься тяжело, конечно, а
вот 5) case null when null - случай интересный.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
66 сообщений из 66, показаны все 3 страниц
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / как обрабатывается NULL?
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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