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;
从上面您可以看到,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';
请注意,使用 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;
注意: Between 子句不能与字符串列/值一起使用。