Необходимо убедиться, что ваш подзапрос возвращает одну строку, или используйте квалифицированное сравнение:
WHERE row_changed_date > ALL ( SELECT last_refreshed ... )
Или:
WHERE row_changed_date > (SELECT MAX(last_refreshed) ...)
Предполагая, что asset_type
является столбцом вlast_refresh
таблица, тогда Oracle будет вычислять подзапрос один раз.Если это действительно столбец в таблице table_a
, то у вас есть коррелированный подзапрос;это должно быть оценено для каждой строки.
Этот ответ фактически не зависит от СУБД - правила применяются как к Oracle, так и к другим СУБД SQL.