Если в хранимой процедуре с таким запросом всё работает корректно (возвращается одно число и NULL):
begin
select min(time) t from params where counter_id = 11858 and time >= 3629232000000 union
select max(time) t from params where counter_id = 11858 and time < 3629232000000;
end
Результат:
А вот с дополнительным селектом код в хранимой процедуре возвращает результат только второго селекта (после UNION):
begin
select * from (
select max(time) t from params where counter_id = 11858 and time < 3629232000000 union
select min(time) t from params where counter_id = 11858 and time >= 3629232000000) a;
end
Результат:
Перестановка селектов между UNION в последнем коде приводит только к смене единственного возвращаемого результата.
Не могу понять почему так происходит?