Rumah >pangkalan data >tutorial mysql >Bagaimanakah Saya Boleh Menggunakan Alias dengan betul dalam Klausa WHERE PostgreSQL?
Merujuk Alias dalam Klausa WHERE dalam Postgres
Dalam PostgreSQL, merujuk kepada alias dalam klausa WHERE boleh membawa kepada ralat seperti "lajur tidak wujud." Ini berlaku kerana klausa WHERE dilaksanakan sebelum alias ditakrifkan dalam klausa SELECT.
Mengapa Ia Tidak Mungkin
Dalam SQL, klausa dilaksanakan dalam susunan tertentu: WHERE , DARI, KUMPULAN OLEH, MEMPUNYAI, PILIH, PESANAN OLEH. Ini bermakna apabila Postgres menemui klausa WHERE, ia belum mengetahui tentang sebarang alias yang telah anda takrifkan dalam klausa SELECT.
Penyelesaian
Untuk menyelesaikan isu ini, anda mesti menulis semula pertanyaan anda untuk mengelak daripada menggunakan alias dalam klausa WHERE. Sebaliknya, nyatakan secara langsung ungkapan yang hendak dibandingkan. Sebagai contoh, pertanyaan berikut memilih baris dengan betul di mana aksara kedua hingga keenam lajur "pk", yang dihantar sebagai integer, adalah lebih besar daripada 90:
SELECT SUBSTRING(pk, 6, 2)::INT AS _year FROM listing WHERE SUBSTRING(pk, 6, 2)::INT > 90
Nota: Ini pengehadan hanya digunakan pada alias yang ditakrifkan dalam klausa SELECT. Alias yang ditakrifkan dalam klausa lain, seperti FROM atau JOIN, boleh digunakan dalam klausa seterusnya.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Menggunakan Alias dengan betul dalam Klausa WHERE PostgreSQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!