У меня есть указатель, который имеет несколько условий, чтобы получить набор данных. Я недавно добавил состояние даты в нем для извлечения данных между конкретными датами, которые пользователь вводит, как показано ниже:using if-else/decode in where where
cursor c1
is
select t.*
from (select v.*, dense_rank() over (order by created desc)
as rank
from test.table_v2 v
where some condition
and some condition
and some condition
and some condition
and some condition
and some condition
and ((ended) between to_date(sd,'mm/dd/rrrr')
and to_date(sd,'mm/dd/rrrr')+3
or ended like decode(sd,null,'%')) --new condition
and some condition
) t
where rank < rmax+1
order by ended desc;
Здесь Rmax = 1000
Мне нужно добавить условие в выражении WHERE, так что, когда sd (введенная пользователем дата) имеет значение null, строки ограничиваются 1000, а при отсутствии значения null ограничение строки не должно рассматриваться.
Я не уверен, что декодирование может использоваться в предложении where. Есть какой-либо способ сделать это?
не могу поверить, что я сделал это настолько сложным в моей голове. Спасибо @ Джеффри Кемп – amsko