我的 WHERE 语句中有一个聚合函数以及其他更正常的 WHERE 约束。如果我使用所有 AND 语句将 WHERE 语句绑定在一起,则查询可以正常检查。
但是,我需要使用 OR 语句来获得正确的数据。当我尝试使用 OR 语句运行查询时,我收到"除以零" 错误。尽管我的一个限制是示例数量不能等于 0,但它正在发生。
我应该如何解决这个问题,既可以使用OR语句,又不能有除以零的错误?我确信有一个简单的解决方案,我只是看不到它。
这是我的查询示例:
SELECT *
FROM table1
WHERE ExampleCode1 BETWEEEN 1 AND 10
AND ExampleNo IN (1, 2, 3, 4)
**AND/OR** ExampleQuantity =! 0
AND ExamplePrice/ExampleQuantity = ExampleAmount
正如jean
所建议的,简单地将除法重写为乘法可以避免除以零。
SELECT *
FROM table1
WHERE ExampleCode1 BETWEEEN 1 AND 10
AND ExampleNo IN (1, 2, 3, 4)
OR ExamplePrice * ExampleQuantity = ExampleAmount
我认为您的测试可能是错误的,通常价格表示每单位价格,金额代表总价
SELECT * FROM (
SELECT *
FROM table1
WHERE ExampleCode1 BETWEEEN 1 AND 10
AND ExampleNo IN (1, 2, 3, 4)
AND ExampleQuantity =! 0
) tab_tmp
WHERE AND ExamplePrice/ExampleQuantity = ExampleAmount;