如何将 WHERE 子句中的条件与 AND (POSTGRES) 组合
How to combine criteria in a WHERE clause with AND (POSTGRES)
我需要满足两个条件才能从 table 中获取 select 数据,然后再满足单独的第三个条件。我似乎 运行 遇到的问题是我似乎无法 "group" (因为缺少更好的术语)第一个标准,然后再检查第三个标准。
select *
from locations
where (town <> '2' and name <> 'south park') and report_number = 12345;
需要合并城镇和名称条件,因为我在城镇 #1 中也有一个名字 "south park",我确实想将该记录与不是 [=23= 的所有内容一起提取] 在镇 #2.
我能够通过执行以下操作(但非常粗略)解决它:
select *
from locations
where (town || name <> '2south park') and report_number = 12345;
第一个查询删除了城镇 2 中的所有内容以及报告 12345
中的所有 "south park" 名称
第二个有效,但我希望有更好的方法来编写此查询。
我认为你想要的逻辑使用or
,而不是and
:
where (town <> '2' or name <> 'south park') and
report_number = 12345;
您可能会发现这更容易遵循:
where not (town = '2' and name = 'south park') and
report_number = 12345;
我需要满足两个条件才能从 table 中获取 select 数据,然后再满足单独的第三个条件。我似乎 运行 遇到的问题是我似乎无法 "group" (因为缺少更好的术语)第一个标准,然后再检查第三个标准。
select *
from locations
where (town <> '2' and name <> 'south park') and report_number = 12345;
需要合并城镇和名称条件,因为我在城镇 #1 中也有一个名字 "south park",我确实想将该记录与不是 [=23= 的所有内容一起提取] 在镇 #2.
我能够通过执行以下操作(但非常粗略)解决它:
select *
from locations
where (town || name <> '2south park') and report_number = 12345;
第一个查询删除了城镇 2 中的所有内容以及报告 12345
中的所有 "south park" 名称第二个有效,但我希望有更好的方法来编写此查询。
我认为你想要的逻辑使用or
,而不是and
:
where (town <> '2' or name <> 'south park') and
report_number = 12345;
您可能会发现这更容易遵循:
where not (town = '2' and name = 'south park') and
report_number = 12345;