发布于 2015-07-12 03:13:23 | 231 次阅读 | 评论: 0 | 来源: 网络整理
PostgreSQL的AND和OR运算符用于组合多个条件来缩小选定一个PostgreSQL表中的数据。这两个运算符被称为连接词运算符。
这些运算符提供了一种的方法使到多个不同的操作符比较在相同的PostgreSQL表。
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运算符也可用于多个条件结合起来,在一个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)
下面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)