📅  最后修改于: 2020-11-30 09:00:33             🧑  作者: Mango
在本节中,我们将了解PostgreSQL Between condition的工作原理,该条件与WHERE子句一起使用,以从两个已定义条件之间的表中选择数据。我们还将看到带有数字和日期值的Between运算符和带有Not运算符的Between运算符的示例。
PostgreSQL之间条件用于定义如何从特定范围内的表达式检索值。换句话说,我们可以说介于条件被用来将一个值与一个值范围进行匹配。
PostgreSQL之间的条件也称为PostgreSQL之间的运算符。
在PostgreSQL中,“中间条件”可以与SELECT , INSERT , UPDATE和DELETE命令一起使用。
expression BETWEEN value1 AND value2;
要么
expression BETWEEN low AND high;
如果值大于或等于(> =)等于值1或下限值,并且小于或等于(<=)等于值2或上限值,则表达式返回true;否则,表达式返回true。否则,它返回false。
我们还可以使用大于或等于(> =)或小于或等于(<=)运算符符来重写Between运算符符,如以下语法所示:
expression >= value1 and value <= value2
假设我们要查找超出范围的值。在这种情况下,我们可以将NOT运算符与BETWEEN条件结合起来,如下面的语法所示:
Expression NOT BETWEEN low AND high;
下面的语法与上面的语法等效,它使用NOT和BETWEEN运算符:
Expression < low OR value > high
在以上语法中,我们使用了以下参数:
Parameter | Description |
---|---|
Expression | It is used to define a column or field. |
value1 and value2 | These values define an inclusive range that expression is compared to. |
让我们看不同的例子来了解PostgreSQL条件间的工作原理:
在下面的示例中,我们将显示如何将BETWEEN条件与数字值一起使用。
为此,我们从Javatpoint数据库中获取Customer表,以获取年龄在23到26岁之间的客户。
如下面的命令所示,我们正在使用带有WHERE子句的Between运算符:
SELECT cust_id, cust_name, Cust_age
FROM customer
WHERE cust_age BETWEEN 23 AND 26
ORDER BY cust_age DESC;
输出量
执行上述命令后,我们将获得以下输出:
在上面的命令中,我们也可以使用大于或等于(> =)或小于或等于(<=)运算符代替BETWEEN运算符。与上述命令相比,此命令将产生类似的结果:
SELECT cust_id, cust_name, Cust_age
FROM customer
WHERE cust_age >=23
AND cust_age <=26
ORDER BY cust_age DESC;
输出量
成功执行以上命令后,我们将得到以下结果:
如上图所示,两个输出都提供相似的结果,但是与大于或等于(> =)或小于或等于相比,使用PostgreSQL Between条件使命令更易于阅读且更高效。 (<=)个运算符。
我们将看到如何在BETWEEN运算符使用Date值以ISO 8601格式定义字面量日期:YYYY-MM-DD 。
在这里,我们从Javatpoint数据库获取部门表。
在以下示例中,我们使用“之间运算符”获取在2017-10-12至2020-06-22之间加入特定部门的员工的信息。
SELECT emp_fname, dept_id, dept_name, joining_date
FROM department
WHERE joining_date BETWEEN '2017-10-12' AND '2020-06-22'
ORDER BY dept_id DESC;
输出量
成功执行以上命令后,我们将得到以下结果:
注意:请确保该范围将始终具有较低的值,因为如果我们从较高的值开始给出范围,则会给出空的结果集。
例如:如果在上面的命令中以较高值(2020-06-22)和较低值(2017-10-12)提供范围:
SELECT emp_fname, dept_id, dept_name, joining_date
FROM department
WHERE joining_date BETWEEN '2020-06-22' AND '2017-10-12'
ORDER BY dept_id DESC;
输出量
执行上述命令后,我们将获得空表:
在PostgreSQL中,我们也可以使用大于或等于(> =)或小于或等于(<=)运算符代替BETWEEN运算符。然后,与上述命令相比,该命令将给出类似的结果:
SELECT emp_fname, dept_id, dept_name, joining_date
FROM department
WHERE joining_date >='2017-10-12'
AND joining_date <='2020-06-22'
ORDER BY dept_id DESC;
输出量
执行上述命令后,我们将得到以下结果:
在执行这两个命令之后,与使用大于或等于(> =)或小于或等于(<=)运算符的命令相比,我们可以看到使用Between运算符的命令更具可读性和更短。
换句话说,我们可以说PostgreSQL使用Between运算符比使用其他运算符符更快地实现了该命令。
在PostgreSQL中,我们可以在WHERE子句中将NOT运算符与Between运算符一起使用,以从已定义条件与PostgreSQL之间的条件矛盾的表中获取数据。
如果我们希望获得年龄不在23到26岁之间的那些客户,可以使用以下命令:
SELECT cust_id, cust_name, Cust_age
FROM customer
WHERE cust_age NOT BETWEEN 23 AND 26
ORDER BY cust_age DESC;
输出量
执行上述命令后,我们将获得以下输出:
在下面的示例中,我们将大于(>)和小于(<)运算符与OR运算符符一起使用,而不是使用NOT BETWEEN / AND运算符。下面的命令等效于上面的SELECT查询:
SELECT cust_id, cust_name, Cust_age
FROM customer
WHERE cust_age < 23
OR cust_age >26
ORDER BY cust_age DESC;
输出量
执行上述命令后,我们将得到以下结果:
在PostgreSQL条件间部分中,我们学习了以下主题: