Rumah >pangkalan data >tutorial mysql >Bagaimanakah Saya Boleh Mengelak Ralat 'Bahagi dengan Sifar' dalam Pertanyaan SQL Saya?
Petua untuk mengelakkan ralat "bahagi dengan sifar" dalam SQL
Ia boleh mengecewakan untuk menghadapi ralat "bahagi dengan sifar" semasa melaksanakan pertanyaan SQL. Ralat ini berlaku apabila cuba membahagi nombor dengan sifar kerana sifar bukanlah pembahagi yang sah secara matematik. Untuk mengelakkan kesilapan ini, terdapat beberapa strategi yang boleh anda gunakan.
Gunakan klausa WHERE
Salah satu cara ialah menggunakan klausa WHERE untuk menapis kes di mana pembahagi (penyebut) adalah sifar. Contohnya:
<code class="language-sql">SELECT dividend / divisor FROM table WHERE divisor <> 0;</code>
Ini memastikan bahawa baris dengan pembahagian dengan sifar tidak termasuk dalam pengiraan, sekali gus menghapuskan kemungkinan ralat.
Gunakan pernyataan KES
Sebagai alternatif, anda boleh menggunakan pernyataan CASE untuk mengendalikan pembahagian sifar secara khusus. Ini membolehkan logik tersuai digunakan untuk situasi ini. Contohnya:
<code class="language-sql">SELECT CASE WHEN divisor = 0 THEN NULL ELSE dividend / divisor END FROM table;</code>
Dalam kes ini, jika pembahagi adalah sifar, hasilnya ditetapkan kepada NULL dan bukannya mengembalikan ralat.
Klausa NULLIF
Klausa NULLIF menyediakan alternatif yang lebih bersih untuk mengendalikan pembahagi sifar. Mengembalikan NULL jika ungkapan yang ditentukan adalah sama dengan nilai yang ditentukan:
<code class="language-sql">SELECT dividend / NULLIF(divisor, 0) FROM table;</code>
Dalam contoh ini, ungkapan NULLIF menetapkan pembahagi kepada NULL jika pembahagi sama dengan sifar, dengan berkesan menghalang ralat bahagi dengan sifar.
Amalan Terbaik
Pilihan kaedah bergantung pada keperluan khusus pertanyaan. Sila pertimbangkan faktor berikut:
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mengelak Ralat 'Bahagi dengan Sifar' dalam Pertanyaan SQL Saya?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!