Sql 数字的不等于和大于之间的差值

Sql 数字的不等于和大于之间的差值,sql,oracle,Sql,Oracle,我有一个问题: 选择* 来自随机表 其中随机数0 “随机数”列永远不会是负数 因此,如果我将查询写为: 选择* 来自随机表 其中randomnumber>0 有什么主要区别吗?如果它永远不会小于零,那么没有大于”是什么意思?它的意思是“不相等”和“不小于”。在这种情况下,如果数字不能小于零,“大于”等于“不等于”。否,没有任何区别(在您的特定情况下)。所有数值比较都需要相同的时间 在最底层,我们做的是从随机数中减去零,然后检查结果。>运算符查找正的非零结果,而运算符查找非零结果。这些比较

我有一个问题:


选择*
来自随机表
其中随机数0

“随机数”列永远不会是负数

因此,如果我将查询写为:


选择*
来自随机表
其中randomnumber>0


有什么主要区别吗?

如果它永远不会小于零,那么没有大于”是什么意思?它的意思是“不相等”和“不小于”。在这种情况下,如果数字不能小于零,“大于”等于“不等于”。

否,没有任何区别(在您的特定情况下)。所有数值比较都需要相同的时间


在最底层,我们做的是从随机数中减去零,然后检查结果。>运算符查找正的非零结果,而运算符查找非零结果。这些比较是微不足道的,并且需要同样的时间来执行。

重要的是确定如何知道
随机数
永远不会是负数。有没有一个约束可以保证这一点?如果不是,如果其他地方的错误导致代码为负值,您希望代码做什么?

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


如果结果的顺序很重要,那么请按

排序感谢Guffa提供的详细信息。很明显,我有一个更复杂的查询,它给我带来了一些问题,这对我来说是完美的答案。