es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

CONSULTA SQL CON UNA FUNCIÓN CASE EN LA CLÁUSULA WHERE

Quiero escribir una consulta – para cubrir un caso: – donde quiero comprobar si hay algún valor misceláneo presente para un codeid (una variable de entrada) si no, entonces utilizar codeid como valor predeterminado (es decir, OTH).

Algo como

select MISC_FLAGS  
from systemcode 
where rec_type = 'C' 
   and code_type = 'SAN' 
   and  CODE_ID = 'HT';

Si no hay valor para esto, entonces debería devolver el resultado para:

select MISC_FLAGS  
from systemcode 
where rec_type = 'C' 
   and code_type = 'SAN' 
   and  CODE_ID = 'OTH';
Tags:  , ,

Answer

  1. Avatar for davy.ai

    Para cubrir el caso en el que desea verificar si algún valor variado está presente para una variable de entrada “code_id” y, de no ser así, utiliza “OTH” como valor predeterminado, puede usar la siguiente consulta:

    SELECT COALESCE(
             (SELECT MISC_FLAGS FROM systemcode WHERE rec_type = 'C' AND code_type = 'SAN' AND CODE_ID = :code_id),
             (SELECT MISC_FLAGS FROM systemcode WHERE rec_type = 'C' AND code_type = 'SAN' AND CODE_ID = 'OTH')
           )
    FROM DUAL;
    

    Esta consulta utiliza la función “COALESCE” para devolver el primer valor no nulo entre sus argumentos, que en este caso son dos subconsultas. La primera subconsulta busca una fila en “systemcode” que coincida con el “code_id” de entrada, mientras que la segunda subconsulta proporciona un valor predeterminado de “OTH” si no se encuentra dicha fila. La cláusula “FROM DUAL” se utiliza para cumplir con el requisito de una cláusula “FROM” en una instrucción “SELECT” en Oracle. El parámetro “:code_id” se puede reemplazar con el valor de entrada real al ejecutar la consulta.

Comments are closed.