Menggunakan Alias dalam SQL WHERE Pernyataan dengan HAVING
SQL membenarkan penggunaan alias untuk memudahkan dan meningkatkan kebolehbacaan pertanyaan. Walaupun alias biasanya digunakan dalam pernyataan SELECT, ia juga boleh digunakan dalam klausa WHERE. Walau bagaimanapun, menggunakan alias dalam pernyataan WHERE memerlukan pendekatan yang sedikit berbeza.
Dalam contoh yang disediakan, percubaan telah dibuat untuk menapis baris menggunakan alias:
SELECT SUBSTRING(Column1, 1, 4) + SUBSTRING(Column1, 4, 3) AS Col1 FROM MyTable WHERE Col1 = 'MySearch'
Malangnya, pendekatan ini tidak akan berfungsi kerana klausa WHERE menilai nama lajur asal, bukan alias. Untuk menggunakan alias dalam klausa WHERE, anda boleh menggunakan kata kunci HAVING sebaliknya.
Klausa HAVING menapis hasil selepas fungsi pengumpulan atau agregat dalam pertanyaan telah digunakan. Dengan menggunakan HAVING, anda boleh menggunakan syarat pada alias:
SELECT SUBSTRING(Column1, 1, 4) + SUBSTRING(Column1, 4, 3) AS Col1 FROM MyTable HAVING Col1 = 'MySearch'
Dalam pertanyaan ini, klausa HAVING mengehadkan hasil pada baris yang alias Col1 bersamaan dengan 'MySearch'.
Adalah penting untuk ambil perhatian bahawa HAVING beroperasi selepas pernyataan SELECT telah dilaksanakan. Oleh itu, menggunakan HAVING dalam konteks pernyataan WHERE boleh mempunyai implikasi prestasi. Untuk mengelakkan masalah prestasi yang berpotensi, pertimbangkan untuk menggunakan HAVING hanya apabila perlu dan pastikan pengoptimuman pertanyaan yang betul.
Atas ialah kandungan terperinci Bolehkah saya Menggunakan Alias dalam Klausa WHERE SQL, dan Jika Tidak, Bagaimana Saya Boleh Mencapai Keputusan Yang Sama?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!