Merujuk Alias dalam Klausa WHERE
Apabila bekerja dengan pertanyaan SQL, selalunya perlu menggunakan alias untuk memberikan nama sementara kepada jadual atau ungkapan . Ini boleh meningkatkan kebolehbacaan dan kebolehselenggaraan kod anda. Walau bagaimanapun, adalah penting untuk mengetahui batasan apabila merujuk alias di bahagian pertanyaan yang berlainan.
Isunya
Dalam contoh yang disediakan, percubaan dibuat untuk merujuk alias (_year) dalam klausa WHERE pertanyaan. Walau bagaimanapun, ini mengakibatkan ralat:
ERROR: column "_year" does not exist
Ralat ini berlaku kerana klausa WHERE dilaksanakan dahulu, sebelum klausa SELECT. Pada masa pelaksanaan, pangkalan data masih belum menemui definisi alias dalam klausa SELECT dan oleh itu tidak dapat mengenalinya.
Penyelesaian
Untuk menyelesaikan isu ini, anda boleh menulis semula pertanyaan supaya alias ditakrifkan dalam klausa WHERE itu sendiri. Ini memastikan alias tersedia apabila klausa WHERE dilaksanakan:
SELECT SUBSTRING(pk, 6, 2)::INT AS _year FROM listing WHERE SUBSTRING(pk, 6, 2)::INT > 90
Dengan meletakkan takrif alias dalam klausa WHERE, anda boleh merujuk alias dalam klausa yang sama, tanpa menghadapi ralat.
Atas ialah kandungan terperinci Bagaimanakah saya boleh merujuk Alias dengan betul dalam Klausa SQL WHERE?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!