Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/27.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 如何基于另一列的一个元素排除组?_Sql_Sql Server - Fatal编程技术网

Sql 如何基于另一列的一个元素排除组?

Sql 如何基于另一列的一个元素排除组?,sql,sql-server,Sql,Sql Server,我的数据集如下所示: Claim Type 0 1 107444 2 107444 5 107445 2 107446 2 等等 此简单查询的结果是: select Claim,[Type] from myTbl Group by Claim,[Type] order by Claim 我想编写一个完全排除类型为5的声明的查询,因此其结果将是: Claim Type 0

我的数据集如下所示:

    Claim   Type
    0       1
    107444  2
    107444  5
    107445  2
    107446  2
等等

此简单查询的结果是:

    select Claim,[Type] from myTbl
    Group by Claim,[Type]
    order by Claim
我想编写一个完全排除类型为5的声明的查询,因此其结果将是:

    Claim   Type
    0       1
    107445  2
    107446  2

关于如何实现这一点有什么想法吗?

您可以使用
where
子句中的逻辑来实现这一点:

select Claim, [Type]
from myTbl
where claim not in (select Claim from myTbl where [Type] = 5)

您想使用HAVING子句


如果不使用任何聚合,为什么要使用GROUP BY?我们是否假设您使用SQL Server,因为您在列名周围使用了SQL Server分隔符?你也应该用适当的数据库标记你的问题。这就是我要找的,谢谢。当我能回答时,我会记下答案。