У меня есть запрос Oracle, который структурирован следующим образом:
SELECT *
FROM table
WHERE X='true' OR
Y IN (complicated subquery)
Если Oracle увидит, что X равно "true", он все равно попытается оценить часть Y IN (подзапрос) в предложении WHERE? Кроме того, в таком заявлении, как подзапрос будет выполняться несколько раз для каждой записи в таблице? Будет ли я лучше с чем-то вроде:
WITH subQ as (complicated subquery)
SELECT *
FROM table
WHERE X='true' OR
Y IN (SELECT id FROM subQ)