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 DE ORACLE APEX

Tengo una pregunta sobre una instrucción SQL que se ejecutará en Oracle Application Express. Tengo esta consulta que lista las ejecuciones de prueba según la clave de JIRA y excluyendo algunas que he especificado:

select name as d, test_run_id as r From test_run 
Where project_jira_key=:TR_BASED_ON_PROJECT and folder_id NOT IN(select folder_id from folder where name in (select column_value from table (apex_string.split(config.get(''ATM_DASHBOARD_CONFIGURATION_FOLDER_EXCLUDE'), '','))));

Me gustaría agregar una expresión CASE o IF que se ejecutará si la clave de proyecto JIRA es nula (no se proporciona por el usuario).

select name as d, test_run_id as r From test_run 
Where folder_id NOT IN(select folder_id from folder where name in (select column_value from table (apex_string.split(config.get(''ATM_DASHBOARD_CONFIGURATION_FOLDER_EXCLUDE'), '','))));

Básicamente, la segunda parte del código es la misma, simplemente no selecciona una clave de proyecto JIRA específica O selecciona todas las claves de proyecto JIRA. En otras palabras: haga la primera consulta, pero si no se proporciona la clave de proyecto JIRA, ejecute la segunda consulta.
Gracias de antemano.

Tags:  , ,

Answer

  1. Avatar for davy.ai

    Para lograr esto, puede utilizar una sentencia IF en su consulta SQL. Aquí hay un ejemplo de consulta con una sentencia IF:

    SI :TR_BASED_ON_PROJECT NO ES NULO ENTONCES
       seleccionar nombre como d, test_run_id como r de test_run
       donde project_jira_key=:TR_BASED_ON_PROJECT y folder_id no está en (seleccionar folder_id de folder donde nombre en (seleccionar column_value de table (apex_string.split(config.get ('ATM_DASHBOARD_CONFIGURATION_FOLDER_EXCLUDE'), ', '))));
    DE LO CONTRARIO
       seleccionar nombre como d, test_run_id como r de test_run
       donde folder_id no está en (seleccionar folder_id de folder donde nombre en (seleccionar column_value de table (apex_string.split(config.get ('ATM_DASHBOARD_CONFIGURATION_FOLDER_EXCLUDE '), ','))));
    FIN SI;
    

    Esta consulta verifica si el valor de :TR_BASED_ON_PROJECT no es nulo. Si no es nulo, se ejecuta la primera consulta que incluye la condición project_jira_key=:TR_BASED_ON_PROJECT. Si es nulo, se omite la primera consulta y se ejecuta la segunda consulta, que no incluye la condición project_jira_key.

    ¡Espero que esto ayude! Avíseme si tiene alguna otra pregunta.

Comments are closed.