BETWEEN 

在 PostgreSQL 中,BETWEEN 运算符与查询的 WHERE 子句一起使用,以将列值或表达式与值列表进行匹配。 例如,从表中获取列中的值介于 x 和 y 之间的数据。

BETWEEN 运算符仅与数字和日期列一起使用。

column BETWEEN <low_value> AND <high_value> 

如果该值大于或等于 low_value 且小于或等于 high_value,则表达式计算结果为 true,否则表达式计算结果为 false。 在计算表达式时,BETWEEN 运算符始终包含较低范围和较高范围。

上面和下面一样,没有使用 BETWEEN 运算符。

column >= <low_value> AND column <= <high_value> 

让我们使用下面的 Employee 表来理解 BETWEEN 运算符。

现在,让我们获取工资在 20000 到 50000 之间的所有员工。 为此,我们可以使用具有低值和高值的 BETWEEN 运算符,如下所示:

SELECT * FROM Employee 
WHERE salary BETWEEN 20000 AND 50000; 

PostgreSQL BETWEEN 操作符

从上面您可以看到,emp_id 1 的薪水为 20000,这是 BETWEEN 运算符中较低的范围值,在评估 BETWEEN 运算符时也会考虑。

BETWEEN 运算符可用于指定查询中的日期范围。以下代码获取 birthdate在 1988年 1 月 1 日到 1995年 12 月 31 日之间的员工。

SELECT * FROM Employee 
WHERE birthdate BETWEEN DATE '1988-01-01' and '1995-12-31'; 

PostgreSQL BETWEEN 操作符

请注意,使用 BETWEEN 运算符过滤数据时不考虑空值。

BETWEEN 运算符也可以使用大于或等于 (>=) 和小于或等于 (<=) 运算符编写,如下所示。

SELECT * FROM Employee 
WHERE salary >= 20000 AND salary <= 50000; 

NOT BETWEEN

NOT 运算符可与 BETWEEN 运算符一起使用来验证表达式以检查范围之外的值。

SELECT * FROM Employee 
WHERE salary NOT BETWEEN 20000 AND 50000; 

PostgreSQL BETWEEN 操作符

注意: Between 子句不能与字符串列/值一起使用。