首页 > 解决方案 > 忽略所有具有特定属性的应用程序

问题描述

我正在查询所有不触发某些规则的应用程序。触发的每个规则都记录在与应用程序 ID 相关联的单独行中。

数据如下所示:

ID  RuleNumber

2   1
2   2
2   3
3   2
3   3
4   1
4   5

这是我尝试过的:

SELECT ID,RuleNumber FROM Table WHERE RuleNumber not in (2,3)

但这只会返回没有这些规则编号的行。我希望它跳过任何附加了其中一个 RuleNumber 的 ID,所以我的结果应该是与 ID 4 关联的行。

标签: sqlsql-server

解决方案


SELECT  DISTINCT ID
FROM    Table T1
WHERE   NOT EXISTS (
                     SELECT 1
                     FROM   Table T2
                     WHERE  T1.ID = T2.ID
                     AND    T2.RuleNumber IN (2,3)
                   );

推荐阅读