Versão atual:

Validação no Where [SQL Oracle]

Pesquisei sobre o assunto e percebi que muitas pessoas indicam o uso de case when ou outros comandos. O meu problema é que eu tenho comparar o valor de retorno de um sUbselect na minha clausula where principal.

SELECT FN.ID_TABELA_FN,
       (SELECT TB_PARAM.MY_PARAM
          FROM TB_QUE_CONTEM_MEU_PARAM TB_PARAM
         WHERE FN.FK_PARAM = TB_PARAM.ID_PARAM) AS MY_PARAM_RETURN
  FROM TABELA_FN FN
 WHERE FN.ID_FN > 0

Neste momento eu tenho como retorno o meu ID_TABELA_FN X MY_PARAM_RETURN já com a associação realizada. Porém eu gostaria de adicionar mais uma clausula no where dependendo do valor obtido em MY_PARAM_RETURN

exemplo:

..--Continuacao do código onde sera feito a validacao para a clausula where

CASE 
   WHEN MY_PARAM IS NOT NULL THEN
       --AQUI EU GOSTARIA DE CONCATENAR COM MINHA CLAUSULA WHERE
       AND MY_PARAM_RETURN = 9
  END

Descrevendo como um codigo Java eu gostaria de fazer o seguinte:

if(return_param != null){
 sql += "AND MY_PARAM_RETURN = 9";
}

Porém com SQL.

Versão(1):

Ver a versão formatada

Validação no Where [SQL Oracle]

Comentário

new question