PostgreSQL - AND和OR联合运算符

PostgreSQL AND OR 运算符用于组合多个条件以缩小PostgreSQL语句中的选定数据.这两个运算符称为联合运算符.

这些运算符提供了一种在同一PostgreSQL语句中与不同运算符进行多次比较的方法.

AND运算符

AND 运算符允许在PostgreSQL语句的WHERE子句中存在多个条件.使用AND运算符时,如果所有条件都为真,则将假定完整条件为真.例如,只有当condition1和condition2都为真时,[condition1] AND [condition2]才为真.

语法

AND运算符的基本语法with WHERE子句如下 :

 
 SELECT column1,column2,columnN 
 FROM table_name 
 WHERE [condition1] AND [condition2] ... AND [conditionN];

您可以使用AND运算符组合N个条件.对于PostgreSQL语句要采取的操作,无论是事务还是查询,由AND分隔的所有条件都必须为TRUE.

示例

考虑公司表,其记录如下 :

testdb# select * from COMPANY;
 id | name  | age | address   | salary
----+-------+-----+-----------+--------
  1 | Paul  |  32 | California|  20000
  2 | Allen |  25 | Texas     |  15000
  3 | Teddy |  23 | Norway    |  20000
  4 | Mark  |  25 | Rich-Mond |  65000
  5 | David |  27 | Texas     |  85000
  6 | Kim   |  22 | South-Hall|  45000
  7 | James |  24 | Houston   |  10000
(7 rows)

以下SELECT语句列出了AGE大于或等于25 AND

testdb=# SELECT * FROM COMPANY WHERE AGE >= 25 AND SALARY >= 65000;

上面给出的PostgreSQL语句将产生以下结果 :

 id | name  | age | address    | salary
----+-------+-----+------------+--------
  4 | Mark  |  25 | Rich-Mond  |  65000
  5 | David |  27 | Texas      |  85000
(2 rows)

OR运算符

OR运算符也用于组合多个PostgreSQL语句的WHERE子句中的条件.使用OR运算符时,如果至少满足任何条件,则将假定完整条件为真.例如,如果condition1或condition2为真,则[condition1] OR [condition2]将为真.

语法

OR运算符的基本语法WHERE子句如下 :

 
 SELECT column1,column2,columnN 
 FROM table_name 
 WHERE [condition1] OR [ condition2] ... OR [conditionN]

您可以使用OR运算符组合N个条件.对于PostgreSQL语句要采取的操作,无论是事务还是查询,只有OR分隔的任何一个条件必须为TRUE.

示例

考虑公司表,其中包含以下记录;

 # select * from COMPANY;
  id | name  | age | address   | salary
 ----+-------+-----+-----------+--------
   1 | Paul  |  32 | California|  20000
   2 | Allen |  25 | Texas     |  15000
   3 | Teddy |  23 | Norway    |  20000
   4 | Mark  |  25 | Rich-Mond |  65000
   5 | David |  27 | Texas     |  85000
   6 | Kim   |  22 | South-Hall|  45000
   7 | James |  24 | Houston   |  10000
(7 rows)

以下SELECT语句列出了AGE大于或等于25 OR

testdb=# SELECT * FROM COMPANY WHERE AGE >= 25 OR SALARY >= 65000;

上面给出的PostgreSQL语句将产生以下结果 :

 id | name  | age | address    | salary
----+-------+-----+------------+--------
  1 | Paul  |  32 | California |  20000
  2 | Allen |  25 | Texas      |  15000
  4 | Mark  |  25 | Rich-Mond  |  65000
  5 | David |  27 | Texas      |  85000
(4 rows)