SQL子句在where子句中?

时间:2014-07-31 18:37:23

标签: mysql sql

是否可以使用sql执行以下操作?该声明未被标记为有错误,但无论如何都无法正常工作。

SELECT * 
FROM  `Orders` 
WHERE  `TotalCost` -  `TotalPaid` +  `TotalRefunded` 
BETWEEN 1 
AND 1000

2 个答案:

答案 0 :(得分:4)

这是猜测。您应该使用示例数据编辑问题。但我的猜测是TotalRefunded通常是NULL。所以你应该在算术运算中处理NULL

SELECT * 
FROM  `Orders` 
WHERE (coalesce(`TotalCost`, 0) -  coalesce(`TotalPaid`, 0) +  coalesce(`TotalRefunded`, 0)) 
          BETWEEN 1 AND 1000;

答案 1 :(得分:0)

检查你的操作一次,然后相应地编写WHERE CLAUSE,不确定你想要的是什么......同样对于错误部分,试试这个

SELECT *
FROM Orders
WHERE Orders.TotalCost - Orders.TotalPaid + Orders.TotalRefunded 
BETWEEN 1 
AND 1000

还要很好地编写Where子句,并根据问题的需要在必要时放置括号。

希望这会有所帮助......

相关问题