был 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 ДВА РАЗНЫХ ЗАПРОСА,
Обсуждают сегодня