Я пытаюсь изменить предложение where в запросе, поскольку он создает декартовое соединение в таблице country в отчете Oracle. Ниже приведена проблема. Переменная отчета: P_PAYMENT_SOC_NBR может быть NULL, '052' или '044', если: P_PAYMENT_SOC_NBR равно NULL, тогда я хочу выполнить поиск как member.d_tax_country_id, member.d_mcps_tax_country_id по country_id по таблице страны.Oracle 11g SQL case statement in where where
Я думал о случае с аргументом where, но я застрял.
AND country.country_id =
decode(:P_PAYMENT_SOC_NBR, NULL,country.country_id,'052',
member.d_tax_country_id,member.d_mcps_tax_country_id)
Любые идеи о том, что делать
Привет Верчелли, если P_PAYMENT_SOC_NBR является NULL, то я не хочу присоединяться обратно к country.country_id я хочу сделать IN (member.d_tax_country_id, member.d_mcps_tax_country_id), чтобы получить обе записи, если они существуют –
@ShaunKinnair отправьте полный запрос, пожалуйста, – vercelli
@ShaunKinnair Я изменил его. Нет 'NVL2' просто' AND/OR/IS NULL' – vercelli