#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 ( ... ))