Klausa WHERE dan HAVING kedua-duanya digunakan untuk menapis data dalam SQL, tetapi skopnya berbeza: klausa WHERE menapis baris tunggal dan klausa HAVING menapis set hasil terkumpul. Klausa WHERE digunakan sebelum mengumpulkan dan mempengaruhi baris hasil fungsi agregat; klausa HAVING digunakan selepas mengumpulkan dan mempengaruhi baris berkumpulan dan bukannya baris individu. Klausa WHERE boleh menapis mana-mana lajur, manakala klausa HAVING hanya boleh menapis hasil fungsi agregat.
Perbezaan antara klausa WHERE dan HAVING
Dalam pertanyaan SQL, klausa WHERE dan HAVING digunakan untuk menapis baris data, tetapi ia mempunyai skop dan tujuan yang berbeza. Klausa
WHERE
HAVING
features
having Clause | ||
---|---|---|
group | application Timing | |
. | Pertanyaan berikut menggunakan klausa HAVING Tapis semua pelanggan yang purata jualannya melebihi 1000:<code class="sql">SELECT * FROM orders WHERE sales_amount > 1000;</code> Salin selepas log masuk |
Nota |
Klausa WHERE boleh menapis mana-mana lajur, manakala klausa HAVING hanya boleh menapis hasil fungsi agregat. | Klausa HAVING biasanya digunakan bersama dengan klausa GROUP BY, manakala klausa WHERE boleh digunakan secara bebas. |
Atas ialah kandungan terperinci Perbezaan antara di mana dan mempunyai dalam sql. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!