假设我有一个表,其中包含列Customer和JOB。
我有几行:
客户1、作业1
客户1,作业2
客户1,工单3
客户2,作业1
客户2、作业2
客户2、作业3
客户3,作业1
客户3,作业2
客户3、作业3
我有一个问题:
Select *
from Table
Where Customer <> 'Customer 1'
AND (Customer <> 'Customer 2' AND Job <> 'Job 1')
我希望从这里返回的行是:
客户2、作业2
客户2、作业3
客户3,作业1
客户3,作业2
客户3、作业3
但是,返回的行仅针对客户3作业2和3。我仍然希望包括具有作业2和3的客户2以及客户3作业1。
数据库中有比这多得多的列,但这些列是有问题的,所以我只包括了这些。这些行实际上在其中存储了票证数据。我希望客户能够过滤出什么票证显示在报告中,他们可能想要排除一个客户,也排除另一个客户的工作,但包括其他一切。客户名称将是唯一的,但作业名称可以在客户之间重复。
1条答案
按热度按时间gkn4icbw1#
您可以在
where
中设置单个客户<->工作免责条款,然后只需执行最终not in
即可排除任何您不想要或已有的子句:例如,如果您有一个
Customer 4
,并且想要为它们排除Job 2
,则将其扩展为: