Merujuk Alias dalam Klausa WHERE: Penerokaan
Dalam PostgreSQL (psql), alias tidak boleh merujuk secara langsung dalam klausa WHERE kerana kepada perintah pelaksanaan. Klausa WHERE dilaksanakan sebelum alias digunakan, membawa kepada ralat "lajur "_year" tidak wujud."
Ini berlaku kerana klausa WHERE beroperasi pada nama lajur asal dan alias hanya digunakan kemudian , semasa penjanaan set hasil. Oleh itu, alias tidak dikenali apabila klausa WHERE dilaksanakan.
Untuk menyelesaikan isu ini, pertanyaan mesti ditulis semula untuk menggunakan nama lajur asal secara langsung dalam klausa WHERE. Sebagai contoh, pertimbangkan pertanyaan:
SELECT SUBSTRING(pk, 6, 2)::INT AS _year FROM listing WHERE _year > 90;
Pertanyaan ini akan gagal dengan ralat "lajur "_year" tidak wujud." Untuk membetulkannya, alias mesti digantikan dengan nama lajur asal dalam klausa WHERE:
SELECT SUBSTRING(pk, 6, 2)::INT AS _year FROM listing WHERE SUBSTRING(pk, 6, 2)::INT > 90;
Atas ialah kandungan terperinci Mengapa Saya Tidak Boleh Menggunakan Alias dalam Klausa WHERE Pertanyaan PostgreSQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!