0

我正在查询,需要一些帮助。

这是查询的一部分:

AND count_sub>2 AND count_del<=2 

我想要做的是,在这个查询中取 2 个变量,并且 IFcount_sub大于5+count_delcontinue。

例子:

count_sub = 10
count_del = 4

差值为 6,因此将返回结果,但如果:

count_sub = 4
count_del = 1

差是 3 并且不会返回任何东西

谢谢

4

2 回答 2

0

您可以查询差异:

WHERE count_sub - count_del > 5
于 2012-09-10T19:02:34.470 回答
0

我会推荐以下解决方案:

SELECT a.id
FROM tbl1 a
INNER JOIN (SELECT id, count_sub - count_del AS diff FROM tbl1) b ON b.id = a.id
WHERE b.diff > 5

WHERE通过在子句 ( )中使用算术WHERE count_sub - count_del > 5 ,您可以防止优化器使用列上的索引。一般规则是将算术尽可能远离那里的WHERE子句。将算术移动到派生表到派生列更有效。

于 2012-09-10T20:16:26.263 回答