Rumah > pangkalan data > tutorial mysql > Mengapa Saya Tidak Boleh Menggunakan Alias ​​dalam Klausa HAVING dalam SQL?

Mengapa Saya Tidak Boleh Menggunakan Alias ​​dalam Klausa HAVING dalam SQL?

Linda Hamilton
Lepaskan: 2024-12-31 15:23:11
asal
739 orang telah melayarinya

Why Can't I Use Aliases in the HAVING Clause in SQL?

Ketidakupayaan Penggunaan Alias ​​dalam Mempunyai Klausa: Sebab Logik

Dalam SQL, alias menyediakan rujukan alternatif kepada lajur atau jadual untuk meningkatkan kebolehbacaan. Walau bagaimanapun, menggunakan alias dalam klausa HAVING, seperti yang ditunjukkan dalam kod contoh, menghasilkan ralat "Nama lajur tidak sah". Ini berlaku kerana susunan penilaian operasi SQL menentukan bahawa klausa HAVING diproses sebelum penetapan alias.

Aliran pelaksanaan dalam SQL adalah seperti berikut:

  1. Pemilihan Jadual: Entiti yang disebut dalam klausa FROM ialah digabungkan.
  2. Penapisan Baris: Baris tidak sepadan dengan keadaan klausa WHERE dialih keluar.
  3. Pengumpulan: Data dibahagikan kepada kumpulan berdasarkan KUMPULAN MENGIKUT klausa.
  4. Penilaian Kumpulan: HAVING klausa menyemak kumpulan untuk kriteria tertentu.
  5. Pemilihan Lajur: Data untuk output dipilih mengikut klausa SELECT.
  6. Kecemerlangan: Baris pendua dihapuskan jika dinyatakan dalam PILIH.
  7. Isih: Keputusan disusun seperti yang ditakrifkan dalam klausa ORDER BY.

Dalam senario yang diberikan, alias "col7" ditetapkan dalam SELECT klausa. Walau bagaimanapun, pada masa klausa HAVING dinilai, tugasan alias belum lagi berlaku. Oleh itu, rujukan kepada "col7" menjadi tidak sah, mengakibatkan ralat.

Penjelasan ini menjelaskan bahawa penggunaan alias dalam klausa HAVING dihadkan disebabkan oleh urutan pengiraan SQL dan menekankan bahawa klausa ORDER BY boleh menggunakan alias kerana ia diproses selepas tugasan alias.

Atas ialah kandungan terperinci Mengapa Saya Tidak Boleh Menggunakan Alias ​​dalam Klausa HAVING dalam SQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan