Als u de uitdrukking niet wilt herhalen, kunt u een afgeleide tabel gebruiken:
select *
from (
select id, cos(id) + cos(id) as op
from myTable
) as t
WHERE op > 1;
Dit heeft geen invloed op de prestaties, het is slechts syntactische suiker vereist door de SQL-standaard.
Als alternatief kunt u het bovenstaande herschrijven naar een algemene tabeluitdrukking:
with t as (
select id, cos(id) + cos(id) as op
from myTable
)
select *
from t
where op > 1;
Welke je voorkeur heeft, is grotendeels een kwestie van smaak. CTE's worden op dezelfde manier geoptimaliseerd als afgeleide tabellen, dus de eerste kan sneller zijn, vooral als er een index is op de uitdrukking cos(id) + cos(id)