PostgreSQL AND & OR 演算子

PostgreSQLでは、ANDとORは接続演算子とも呼ばれ、データを検索する際に検索範囲を絞り込むために使用されます。ANDまたはORを使用して、1つ以上のクエリ条件を指定できます。

AND

AND演算子は、1つまたは複数の条件がすべて同時に成立することを示します。

WHERE句でのANDの使用構文は次のとおりです:

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

例

COMPANYテーブルを作成します(COMPANY SQLファイルをダウンロード)。データ内容は次のとおりです:

サンプルdb# 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)

次の例では、AGEフィールドが25より大きく、かつSALARYフィールドが65000以上のすべてのレコードを読み取ります:

サンプルdb=# SELECT * FROM COMPANY WHERE AGE >= 25 AND SALARY >= 65000;
 id | name  | age | address    | salary
----+-------+-----+------------+--------
  4 | Mark  |  25 | Rich-Mond  |  65000
  5 | David |  27 | Texas      |  85000
(2 rows)

OR

OR演算子は、複数の条件のうちいずれか1つを満たせばよいことを示します。

WHERE句でのORの使用構文は次のとおりです:

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

COMPANYテーブルを作成します(COMPANY SQLファイルをダウンロード)。データ内容は次のとおりです:

サンプルdb# 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)

次の例では、AGEフィールドが25以上、またはSALARYフィールドが65000以上のすべてのレコードを読み取ります:

サンプルdb=# SELECT * FROM COMPANY WHERE AGE >= 25 OR SALARY >= 65000;
 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)
その他の拡張