【发布时间】:2020-02-14 13:22:34
【问题描述】:
我需要满足两个条件才能从表中选择数据,然后满足单独的第三个条件。我似乎遇到的问题是,在检查第三个标准之前,我似乎无法将第一个标准“分组”(因为没有更好的术语)。
select *
from locations
where (town <> '2' and name <> 'south park') and report_number = 12345;
城镇和名称条件需要结合起来,因为我在 1 号城镇也有一个“南方公园”的名字,我确实想把该记录与城镇中所有不是“南方公园”的东西一起拉出来# 2.
通过执行以下操作,我能够解决它(但非常粗略):
select *
from locations
where (town || name <> '2south park') and report_number = 12345;
第一个查询删除了城镇 2 中的所有内容以及报告 12345 中的所有“南方公园”名称
第二个可行,但我希望有更好的方法来编写此查询。
【问题讨论】:
-
将标准“分组”在一起没有意义。所有三个都需要评估为真才能返回一行。
-
试图找到一种干净的方法将两个标准视为单个 TRUE,而不是 T/F 返回 F(是的,它应该返回 F)。试图找到如何做到这一点,我认为你下面的代码有它。谢谢。
标签: sql postgresql where-clause multiple-conditions