SQL-ЗАПРОС ORACLE APEX

#sql #oracle #oracle-apex

Вопрос:

У меня есть вопрос относительно инструкции sql, которая будет выполняться в Oracle Application Express. У меня есть этот запрос, в котором перечислены тестовые запуски на основе ключа JIRA и за исключением некоторых, которые я указал:

 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'), ','))));  

Я хотел бы добавить СЛУЧАЙ или выражение IF, которое будет выполняться, если project_jira_key=null (не задано пользователем)

 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'), ','))));  

В основном вторая часть кода такая же, она просто не выбирает конкретный «project_jira_key» ИЛИ выбирает все project_jira_keys. Другими словами: Выполните первый запрос, но если project_jira_key не задан, выполните второй запрос. Заранее спасибо

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

1. Вы можете использовать функцию с помощью PLSQL

Ответ №1:

Вы можете сделать это, объединив предикаты where:

 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 ( ... ))  or ( project_jira_key is null and folder_id NOT IN ( ... ))