更大之间我有一个查询:差异不等于和高于一些
select *
from randomtable
where randomnumber <> 0
列“RANDOM_NUMBER”永远不会是负数。
所以,如果我写的查询为:
select *
from randomtable
where randomnumber > 0
有什么主要区别?
更大之间我有一个查询:差异不等于和高于一些
select *
from randomtable
where randomnumber <> 0
列“RANDOM_NUMBER”永远不会是负数。
所以,如果我写的查询为:
select *
from randomtable
where randomnumber > 0
有什么主要区别?
不,根本没有差别(在你的具体情况下)。所有的数字比较都是同一时间。
在最底层完成的工作是从随机数中减去零,然后检查结果。 >运算符查找正的非零结果,而运算符查找非零结果。这些比较是微不足道的,并且花费相同的时间来执行。
如果它永远不会小于零,则NO
什么是“大于”是什么意思?它意味着'不等于'和'不低于'。在这种情况下,如果数字不能小于零,“大于”等于“不等于”。
重要的是要确定你如何知道random_number
永远不会是负数。有没有保证它的限制?如果不是,如果某个地方的错误导致它的负面情况,您希望代码执行什么操作?
结果集应该永远不会不同。查询路径可能是第二个可能选择从randomnumber = 0开始的索引范围扫描并按顺序查找记录。因此,结果的顺序可能会有所不同。
如果结果的顺序很重要,然后放在订单旁
感谢细节Guffa。我显然有一个更复杂的查询,这导致我一些问题,这对我来说完全回答。 – Nicks 2009-12-11 09:19:48