Jika Anda tidak ingin mengulang ekspresi, Anda dapat menggunakan tabel turunan:
select *
from (
select id, cos(id) + cos(id) as op
from myTable
) as t
WHERE op > 1;
Ini tidak akan berdampak pada kinerja, ini hanya gula sintaksis yang diperlukan oleh standar SQL.
Atau Anda dapat menulis ulang di atas ke ekspresi tabel umum:
with t as (
select id, cos(id) + cos(id) as op
from myTable
)
select *
from t
where op > 1;
Yang mana yang Anda sukai sebagian besar adalah masalah selera. CTE dioptimalkan dengan cara yang sama seperti tabel turunan, jadi yang pertama mungkin lebih cepat terutama jika ada indeks pada ekspresi cos(id) + cos(id)