Выборка по необязательному параметру, включая значения с NULL

chikaginsk
Дата: 23.09.2015 12:12:24
Добрый день!
Прошу помощи в решении следующей задачи.
Для отчёта BI Publisher использую результат селекта из бд Oracle. Одним из условий является вывод данных из поля VARCHAR по заданному параметру, но параметр необязательный. Т.е. может быть задан или нет.
Решил задачу следующим образом:
select textfield from mytable
where textfield like (nvl(:PAR,'')||'%')

В результате, если параметр не задан, то выводятся все значения поля textfield, кроме NULL.
А требуется выводить все значения, включая NULL (если параметр не задан).
Если параметр задан, то выводить только значение поля textfield, равное значению параметра.
Возможно ли такое сделать, и если возможно, то пожалуйста подскажите как.
Elic
Дата: 23.09.2015 12:15:03
chikaginsk
nvl(:PAR,'')
Незнание основ.

RTFM or
Добрый Э - Эх
Дата: 23.09.2015 12:15:51
chikaginsk,

читай про OR
chikaginsk
Дата: 23.09.2015 12:29:31
Естественно я в курсе про OR. Тыкать в мануалы - это не помощь.
Ваше изящное решение описанной задачи предложите лучше.
Elic
Дата: 23.09.2015 12:35:36
chikaginsk
Ваше изящное решение
В яслях меряйся такой элементарщиной.
ArtNick
Дата: 23.09.2015 12:37:41
chikaginsk
Естественно я в курсе про OR. Тыкать в мануалы - это не помощь.
Ваше изящное решение описанной задачи предложите лучше.

Дык предложили же - OR. Что тебя в нем не устраивает?
chikaginsk
Дата: 23.09.2015 12:40:18
Возможно не понятна суть проблемы.
Следующий код не подходит, т.к. при заданном значении параметра выводятся и NULL значения тоже.
select textfield from mytable
where textfield like (nvl(:PAR,'')||'%')
or textfield is null

А в условии сказано, что при заданном значении параметра выводить только записи, где textfield = значению паарметра.
Если же значение на задано, то выводить все записи, включая textfield IS NULL.
Elic
Дата: 23.09.2015 12:44:26
chikaginsk
Следующий код
проверяет не то и по-прежнему содержит признаки наивной невежественности.
Кщд
Дата: 23.09.2015 12:46:13
chikaginsk, :PAR is null
ArtNick
Дата: 23.09.2015 13:05:11
chikaginsk
А в условии сказано, что при заданном значении параметра выводить только записи, где textfield = значению паарметра.
Если же значение на задано, то выводить все записи, включая textfield IS NULL.


select textfield from mytable
  where textfield =:PAR OR :PAR is null