Выбор из одного столбца в разные переменные

#select #plsql #where-clause #oracle12c #select-into

Вопрос:

  Values                 Id's
    
    1                   120
    1                   120
    0                   120
    0                   120
    0                   120
    Not applicable      120
    Not applicable      120
    Empty               120
 

Я хотел выбрать количество значений 1 в другой переменной и количество 0 в другой переменной с помощью одного оператора select. Возможно ли это ?

Ответ №1:

Возможно? Конечно, вот один из вариантов. Примеры данных в строках № 1-10; запрос, который вы можете использовать, начинается со строки № 11.

 SQL> with test (value, id) as
  2    (select 'n/a'  , 120 from dual union all
  3     select 'n/a'  , 120 from dual union all
  4     select 'empty', 120 from dual union all
  5     select '1'    , 120 from dual union all
  6     select '1'    , 120 from dual union all
  7     select '0'    , 120 from dual union all
  8     select '0'    , 120 from dual union all
  9     select '0'    , 120 from dual
 10    )
 11  select sum(case when value = '1' then 1 else 0 end) cnt_1,
 12         sum(case when value = '0' then 1 else 0 end) cnt_0
 13  from test;

     CNT_1      CNT_0
---------- ----------
         2          3

SQL>