BETWEEN 条件

使用 BETWEEN 条件来测试数字表达式、字符表达式或时间表达式的值是否在指定的范围内。

BETWEEN 条件

用法

NULL 值不可满足该条件。定义的范围可求值为 NULL 的表达式也不可满足。

BETWEEN 条件中的三个表达式必须满足这些限制:
  • 所有三个表达式都必须求值为相互可比的数值、时间或字符数据类型。
  • 紧跟在 BETWEEN 关键字之后的表达式的值必须小于跟在 AND 关键字之后的表达式的值。

BETWEEN 条件中的数值和时间表达式

对于数值表达式,小于意味着在数轴的左边。

对于 DATE 和 DATETIME 表达式,小于意味着时间较早。

对于 INTERVAL 表达式,小于意味着更短的时间跨度。

BETWEEN 条件中的字符表达式

对于 CHAR、VARCHAR 和 LVARCHAR 表达式,小于意味着在代码集顺序之前

对于 NCHAR 和 NVARCHAR 表达式,小于 意味着在本地化的排序顺序之前,如果存在一个的话;否则小于意味着在代码集合顺序之前

如果该语言环境定义了排序顺序的话,则将基于语言环境的排序顺序用于 NCHAR 和 NVARCHAR 表达式。因此,对于 NCHAR 和 NVARCHAR 表达式,小于意味着在基于语言环境的排序顺序之前。要获取更多关于基于语言环境的排序顺序以及 NCHAR 和 NVARCHAR 数据类型的信息,请参阅 GBase 8s GLS 用户指南

要获取关于在有 NLCASE INSENSITIVE 属性的数据库中带有 NCHAR 和 NVARCHAR 运算对象的关系运算符表达式如何不同于在区分大小写的数据库中它们的行为的信息,请参阅主题 在区分大小写的数据库中的 NCHAR 和 NVARCHAR 表达式

BETWEEN 条件中的 NOT 关键字

对于要为 TRUE 的 BETWEEN 条件,依赖于您是否包括 NOT 关键字。
  • 如果您省略 NOT 关键字,则仅当 BETWEEN 关键字左边的表达式的值在 BETWEEN 关键字右边的两个表达式的包括范围之中时,BETWEEN 条件才为 TRUE
  • 如果 NOT 关键字在 BETWEEN 关键字的紧前边,则仅当 BETWEEN 关键字左边的表达式的值不在 BETWEEN 关键字的右边的两个表达式的值的包括范围之中时,BETWEEN 条件才为 TRUE
否则,BETWEEN 条件为 FALSE

BETWEEN 条件的示例

下列示例说明 BETWEEN 条件:
order_date BETWEEN '6/1/97' and '9/7/97'
          
          zipcode NOT BETWEEN '94100' and '94199'
          
          EXTEND(call_dtime, DAY TO DAY) BETWEEN 
          (CURRENT - INTERVAL(7) DAY TO DAY) AND CURRENT
          
          lead_time BETWEEN INTERVAL (1) DAY TO DAY 
          AND INTERVAL (4) DAY TO DAY
          
          unit_price BETWEEN loprice AND hiprice
1 请参阅 表达式