2

(我对 SQL 有点陌生)我有很多要重写的查询,其中有一个where像这样的子句:

where some_number > A
and some_number <= B

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

where some_number between A and B

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

4

2 回答 2

3

几点...

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

where some_number > A and some_number <= B

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


其次,它实际上并不比 between 版本快或慢,因为在between A and B幕后转换为:

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

所以性能是相同的。

基本上,不用担心。

于 2012-05-29T14:01:21.240 回答
0

你可以用“+1”来抵消你的 a

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

于 2012-05-29T13:57:48.537 回答