Chodzi o to że relacje są zawikłane i jeden selekt jest nieczytelny więc chciałbym najpierw wykonać "połowę zapytania" a w drugim selekcie resztę.
SELECT * FROM tab1 WHERE (SELECT id2 FROM tab2 WHERE id=7)
chciałby uzyskać zapis
x <- SELECT id2 FROM tab2 WHERE id=7
x jest zbiorem identyfikatorów
SELECT * FROM tab1 WHERE id IN (x)
oczywiście moje selecty są bardziej skomplikowane a select id2... jest często wykorzystywane więc naturane było by go zamknąć w jakąś podprocedurę stałą dla innych selectów.