criar um IF em tempo de execução

14/10/2019

9

Tenho uma tabela que armazena algumas condições para que a consulta seja realizada por exemplo:
é igual a
é deferente de
é maior do que
é maior ou igual a
é menor do que
é menor ou igual a

eu preciso que dentro da procedure (firebird) o if execute essa instrução por exemplo:

select po0021.po021_formula_1, po0021.po021_percentual_1, po0021.po021_condicao, po0021.po021_formula_2, po0021.po021_percentual_2
from po0021
where po0021.po021_iddiretoria = :r_iddiretoria
into :l_formula_1, :l_percentual_1, :l_condicao, :l_formula_2, :l_percentual_2;

if (:r_percentual_projetada || :l_formula_1 || :l_percentual_1) then
suspend;

Observação: :l_formula_1 pode ser igual >, >=, =, <=

Como fazer para o If entender isso?
Responder

Posts

14/10/2019

Felipe Morais

Recomendo uma leitura sobre a estrutura SQL CASE-WHEN. Exemplo:

CASE
  WHEN r_percentual_projetada THEN :l_formula_1;
END
Responder
Pesquise também por
execute statement
Responder