был null, то возвращать 1?
select * from todos
where
date >= CURRENT_DATE
and 1 = case
when city_id = :city_id then 1
when :city_id is null then 1
else 0
end
order by date asc
А разве он уже и так не возвращает? А вообще, что это у Вас за конструкция такая странная?
nvl :city_id обработайте
Плохой запрос. Лучше на клиенте послать опционально в зависимости от city_id ДВА РАЗНЫХ ЗАПРОСА,
Обсуждают сегодня