簡體   English   中英

如何處理select語句的除以0?

[英]How to handle division by 0 for select statements?

我這樣做

    $query4 = "(
                 SELECT count(*) 
                 FROM checklist c
                 JOIN task AS t ON t.id = c.task_id AND t.active=1
                 WHERE c.placement_id = m.id
               ) / (
                 SELECT count(*) 
                 FROM task 
                 WHERE active = 1
               )";

在PHP中,我堅持使用更大的sql字符串。 問題是上面的第二個選擇,可能是0.在它為0的情況下,我希望除法自動為1(就像將整個query4轉換為1)。

有誰知道如何做到這一點?

謝謝。

在您的情況下,最簡單的變化可能是這樣的:

$query4 = "(
             SELECT count(*) 
             FROM checklist c
             JOIN task AS t ON t.id = c.placement_id AND t.active=1
             WHERE c.placement_id = m.id
           ) / (
             SELECT (case when count(*) > 0 then count(*) end)
             FROM task 
             WHERE active = 1
           )";

這將用NULL替換0值 - 因此除法將返回NULL而不是錯誤。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM