不等于和大于数字之间的差异

时间:2009-12-11 08:52:44

标签: sql oracle

我有一个问题:

select *
from randomtable
where randomnumber <> 0

“random_number”列永远不会是负数。

所以,如果我把查询写成:

select *
from randomtable
where randomnumber > 0

有什么重大差异吗?

5 个答案:

答案 0 :(得分:5)

不,完全没有区别(在您的具体情况下)。所有数字比较都需要相同的时间。

在最低级别完成的是从randomnumber中减去零,然后检查结果。 &gt;运算符在&lt;&gt;时查找正的非零结果运算符查找非零结果。这些比较是微不足道的,并且花费相同的时间来执行。

答案 1 :(得分:2)

如果它永远不会小于零,则

答案 2 :(得分:2)

重要的是确定您如何知道random_number永远不会是负数。是否存在保证它的约束?如果没有,如果其他地方的错误导致代码为负,您希望代码做什么?

答案 3 :(得分:2)

结果集永远不会有所不同。查询路径可能是第二个可能选择从randomnumber = 0开始的索引范围扫描并按顺序查找记录。因此,结果的顺序可能不同。

如果结果的顺序很重要,那么请输入ORDER BY

答案 4 :(得分:0)

'大于'意味着什么?它意味着“不平等”和“不小于”。在这种情况下,如果数字不能小于零,则“大于”等于“不相等”。