Могу ли я использовать NULL или NOT NULL в параметре Oracle SQL? - PullRequest
0 голосов
/ 10 сентября 2018

Допустим, у меня есть два запроса Oracle SQL, которые я использую в разных местах моего кода:

select *
from employees
where manager_id IS NULL
and etc etc etc...

и

select *
from employees
where manager_id IS NOT NULL
and etc etc etc...

Единственное различие между этими двумя запросамиэтот manager_id равен NULL в первом и NOT NULL во втором.

Есть ли способ записать это как одно общее утверждение?Можно ли передать в NULL или NOT NULL в параметре?Примерно так:

select *
from employees
where manager_id = ?
and etc etc etc...

Я знаю, что приведенный выше пример не работает (и я знаю, почему).Мой вопрос заключается в следующем: есть ли более элегантное решение, чем управление двумя отдельными строками SQL, которые на 99% похожи?

1 Ответ

0 голосов
/ 10 сентября 2018

Вам нужно будет использовать более сложную логику. Может быть:

where ( (? = 'not null' and manager_id is not null) or
        (? = 'null' and manager_id is null)
      )
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...