a和b之间的数字 - 不包括在a上,包括在b上

时间:2012-05-29 13:53:48

标签: sql oracle where-clause

(我对SQL有点新)我有很多我正在重写的查询,这些查询有where这样的句子:

where some_number > A
and some_number <= B

我想使用单个where子句(更少的行,它不是更快/更慢吗?),如下所示:

where some_number between A and B

问题是第一个子句在A上是独占的,包含在B上。有没有什么方法可以像第二个查询一样在单行上指定“包含性”?感谢。

2 个答案:

答案 0 :(得分:3)

有几点......

首先,如果你使用更少的线,它只是“更少的线”。我会这样格式化:

where some_number > A and some_number <= B

因为它实际上是一个范围条件,并且范围的每一端都是单独编码的。


其次,它实际上没有比版本之间更快或更慢,因为在封面between A and B下转换为:

where (some_number >= A) and (some_number <= B)

因此表现相同。

基本上,不要担心。

答案 1 :(得分:0)

你可以通过“+1”

来抵消你的a

或者只是使用您的第一种语法,它更容易阅读。