Sql a和b之间的数字-a上不包含,b上包含
(我对SQL有点陌生)我正在编写很多查询,其中有一个Sql a和b之间的数字-a上不包含,b上包含,sql,oracle,where-clause,Sql,Oracle,Where Clause,(我对SQL有点陌生)我正在编写很多查询,其中有一个where子句,如下所示: where some_number > A and some_number <= B where some_number between A and B where some_number > A and some_number <= B 问题是第一个子句在A上是独占的,在B上是包含的。有没有办法像第二个查询那样在单行上指定“inclusivity”?谢谢。你可以用“+1”来抵消你的a
where
子句,如下所示:
where some_number > A
and some_number <= B
where some_number between A and B
where some_number > A and some_number <= B
问题是第一个子句在A上是独占的,在B上是包含的。有没有办法像第二个查询那样在单行上指定“inclusivity”?谢谢。你可以用“+1”来抵消你的a 或者只使用你的第一个语法,它更容易阅读。几点 首先,如果你使用更少的线,那只是“更少的线”。我会将其格式化如下:
where some_number > A
and some_number <= B
where some_number between A and B
where some_number > A and some_number <= B
因此,性能是相同的
基本上,不用担心。第一个示例是正确的语法<代码>介于之间是包含的。如果您处理的是整数,只需将一个限制偏移一即可。但你为什么要这么做?您创建的代码不易维护,速度也不快。两行方法有什么问题?@DavidM-每个人都有自己的错误,但我更喜欢
之间的语法,而不是。>A和。。。你用你已经在做的方式去做。不要被(A+smallAmount)和(B)
之间的所诱惑,除非您使用的是离散值,例如整数。如果您使用的是连续值,如浮点数或日期,请坚持您的操作。@Dems-当然可以。我要换一种说法,我更喜欢在
语法之间使用,而不是。>A和…+1
假定为整数。浮动和日期时间等呢?偏移机制仅适用于离散值,而对于连续值则极不适用。