Моя интерпретация ... Если вы хотите ограничить данные, возвращаемые на основе columnA, когда они имеют значение, но когда они не имеют значения (NULL), используйте columnB из таблицы B ... для ограниченияЭто;затем объедините & подзапрос должен это сделать.
Или вы можете заменить весь подзапрос скалярной функцией и вызвать ее.
SELECT *
FROM TESTSCHEMA.TABLE_A
WHERE LOAN_ID = :LOAN_ID
AND COALESCE(COLUMNA,(SELECT ColumNName
FROM table_B
WHERE [Some Limits to get 1 record always]) = DesiredValue
- Заменить
ColumnName
желаемым столбцом из таблицы_B - Заменить
DesiredValue
значением, с которым вы хотите сравнить столбец A или ColumnB. - ДобавитьГде условие ограничивает table_B, чтобы гарантировать, что вы всегда получите только 1 запись назад.
Или ...
SELECT *
FROM TESTSCHEMA.TABLE_A
WHERE LOAN_ID = :LOAN_ID
AND COALESCE(COLUMNA,GetBValueWhenAValueNull(Paramaters?)) = DesiredValue
Но так как это потребует развертывания / изменения кода ...не угадаю