Pokud nechcete výraz opakovat, můžete použít odvozenou tabulku:
select *
from (
select id, cos(id) + cos(id) as op
from myTable
) as t
WHERE op > 1;
To nebude mít žádný dopad na výkon, je to pouze syntaktický cukr vyžadovaný standardem SQL.
Alternativně můžete výše uvedené přepsat na běžný tabulkový výraz:
with t as (
select id, cos(id) + cos(id) as op
from myTable
)
select *
from t
where op > 1;
Kterému z nich dáte přednost, je do značné míry věcí vkusu. CTE jsou optimalizovány stejným způsobem jako odvozené tabulky, takže první z nich může být rychlejší, zejména pokud existuje index na výrazu cos(id) + cos(id)