位置:首页 > > PostgreSQL AND/OR运算符

PostgreSQL AND/OR运算符

PostgreSQL的AND和OR运算符用于组合多个条件来缩小选定一个PostgreSQL表中的数据。这两个运算符被称为连接词运算符。

这些运算符提供了一种的方法使到多个不同的操作符比较在相同的PostgreSQL表。

AND运算符:

AND运算符允许存在多个条件中的一个PostgreSQL表中的WHERE子句。虽然使用AND运算符,完整的条件下将被假设当所有的条件都成立。例如[条件1]和[条件2]将为true,只有当这两个条件1和条件2都为TRUE。

语法:

WHERE子句的基本语法与操作如下: 

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

可以结合使用AND运算符条件N多个。应采取PostgreSQL语句,无论它是一个事务或查询,所有分离的条件必须是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)
  

年龄大于或等于25并且工资是大于或等于65000.00所有的记录,下面SELECT语句列表:

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运算符,完整的条件下将被假设任何条件至少是真实的。例如[条件1]或[条件2]将是true,如果条件1或条件2是true。

语法:

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

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

可以结合N多的条件下使用OR运算符。对于一个PostgreSQL语句,无论它是一个事务或查询,任何一个分离的条件或是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) yiibai.com 

下面SELECT语句是年龄大于等于25或薪水大于等于65000.00所有的记录列表:

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)