172 похожих чатов

Привет. Есть такая функция - https://pastebin.com/08QhiNwg . В качестве аргументов

она принимает id записей из разных таблиц по которым фильтровать и bool переменную, чтобы понимать нужно ли вообще использовать данный фильтр. Но не важно стоит ли territory_filter true или false. Все равно условие в where срабатывает. Если сделать так:
AND (territory_in NOTNULL AND normal.territory_code_link_id = territory_in);
то фильтр срабатывает в любом случае, даже когда territory_in IS NULL. Делать под каждую комбинацию фильтров свою хранимку не вариант, так как таких комбинаций очень много будет.

То-есть есть три фильтра: territory_in, ministry_in, program_in и каждый из них может и задействоваться, и нет. Как это в процедуре описать? Проверка на NULL и дополнительная BOOL переменная не работают.

1 ответов

12 просмотров

Либо я чего-то не понимаю в вашем описании, любо вы какой-то фигнёй занимаетесь. Если значение переменной null, то любая операция с ней, кроме IS NULL, даёт также null. И когда это значение просачивается наверх, то запись отфильтровывается. Т.ею писать x is not null and x = ? совершенно не нужно. Если же, наоборот, условие не надо учитывать при нулевом значение переменной, то надо написать x is null or x = ?. Ещё есть coalesce, позволяющий заменить null на какое-то другое значение, например на пустую строку: coalesce(x, '') = ?

Похожие вопросы

Обсуждают сегодня

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
Rꙮman Yankꙮvsky
29
А вообще, что может смущать в самой Julia - бы сказал, что нет единого стандартного подхода по многим моментам, поэтому многое выглядит как "хаки" и произвол. Короче говоря, с...
Viktor G.
2
30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Добрый день! Скажите пожалуйста, а какие программы вы бы рекомендовали написать для того, чтобы научиться управлять памятью? Можно написать динамический массив, можно связный ...
Филипп
7
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Ребят в СИ можно реализовать ООП?
Николай
33
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
Карта сайта