лучший способ назначить вычисленное процентное изменение переменной

#oracle #plsql

#Oracle #plsql

Вопрос:

У меня есть 2 переменные в моей процедуре PL / SQL, которые получают подсчеты. используя эти значения, я вычисляю процентное изменение между двумя таблицами. Вот как я это делаю:

 SELECT (
         decode(original_count,
                0,
                to_number(0),
                ((todays_count - original_count)/original_count)
                )
       ) 
  INTO percentage_change 
  FROM DUAL; 
  

Мне было интересно, есть ли способ сделать это, используя := назначение
чего-то вроде:

 percentage_change := (decode(original_count,
                             0,
                             to_number(0),
                             ((todays_count - original_count)/original_count)
                             )
                      )
  

Могу ли я это сделать?

Комментарии:

1. Да, вы можете. Используйте case выражение вместо decode() функции (может использоваться только в инструкции DML).

Ответ №1:

Вы можете использовать конструкцию case:

 percentage_change := case when original_count=0 then 0
                         else (todays_count - original_count)/original_count end;