Использование COUNT(*) и INTO oracle sql

У меня есть оператор выбора, подобный этому:

    with input as
    (select id,date,quantity
    from
    abc a,xyz z
    .......)
         select count(*)
         from input t
         where .....;

этот оператор дает мне результат 0, и я хочу использовать этот счет = 0 в моей части процедуры. Я добавил вывод select count(*), который теперь выглядит так:

 select count(*) output
 with input as
    (select id,date,quantity
    from
    abc a,xyz z
    .......)
         select count(*)
         from input t
         where .....);

теперь вывод больше не будет 0 (нулем), потому что он сам считает нулевой результат и дает окончательный результат как 1. Как я могу использовать статус INTO для передачи/удержания этого нуля или любого другого реального результата в ORACLE/SQL?


person kkl    schedule 26.11.2017    source источник
comment
Я не совсем уверен, насколько действителен второй оператор sql? Он присоединился? Союз? Вы не можете просто смешивать и сопоставлять операторы select/with без какой-либо операции, чтобы связать их. Дайте первому счетчику псевдоним, а затем обратитесь к нему позже по псевдониму, возможно, в группе, с помощью max(alias)   -  person Caius Jard    schedule 26.11.2017


Ответы (1)


У вас будет что-то вроде этого:

declare
    v_cnt number;
begin
    with input as (
          select id,date,quantity
          from abc a join
               xyz z
               .......
         )
    select count(*) into v_cnt
    from input t
    where .....;
end;
person Gordon Linoff    schedule 26.11.2017