Rumah >pangkalan data >tutorial mysql >Mengapa Saya Tidak Boleh Menggunakan Agregat Alias dalam Klausa HAVING SQL?
Mengapa Agregat Beralias Dilarang dalam MEMILIKI Klausa
Dalam SQL, pengguna sering menghadapi ralat apabila cuba menggunakan alias untuk agregat dalam klausa HAVING. Ini berpunca daripada tertib khusus di mana SQL memproses pertanyaan.
Klausa HAVING, yang menapis hasil operasi GROUP BY, dinilai sebelum klausa SELECT. Akibatnya, alias yang ditakrifkan dalam klausa SELECT belum lagi tersedia semasa menilai klausa HAVING.
Untuk memahami perkara ini dengan lebih baik, mari kita pertimbangkan urutan logik pelaksanaan pertanyaan berikut:
Memandangkan klausa HAVING dinilai sebelum klausa SELECT, ia tidak boleh merujuk alias yang ditakrifkan kemudian dalam pertanyaan. Sekatan ini menerangkan sebab menggunakan alias dalam klausa HAVING, seperti yang ditunjukkan dalam contoh, menghasilkan ralat "Nama lajur tidak sah".
Sebaliknya, alias berfungsi dalam klausa ORDER BY kerana klausa ORDER BY ialah dinilai selepas klausa SELECT. Oleh itu, alias yang ditakrifkan dalam klausa SELECT tersedia untuk digunakan dalam klausa ORDER BY.
Atas ialah kandungan terperinci Mengapa Saya Tidak Boleh Menggunakan Agregat Alias dalam Klausa HAVING SQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!