Sql server 分组依据和列表不匹配

Sql server 分组依据和列表不匹配,sql-server,group-by,Sql Server,Group By,我的表格如下: Col1 Col2 Col3 Col4 Col5 1 50.9499411799115 Point imp A 1 109.69487431133 Point exp 1 1 107.69487431133 Point e

我的表格如下:

Col1        Col2                Col3    Col4                    Col5
1           50.9499411799115    Point   imp                     A
1           109.69487431133     Point   exp                     1
1           107.69487431133     Point   exp                     2
1           1019.69487431133    Point   exp                     B
2           51.5403193833315    Point   imp                     0
2           50.5403193833315    Point   exp                     3
我想按Col1分组,并选择Col5中没有“A”或“B”的所有列

我使用下面的查询在MSSQL中生成输出,但没有得到正确的结果,有人能指出我的错误吗

SELECT Col1
FROM table1
WHERE
    Col5 NOT LIKE('%A%')
or  Col5 NOT LIKE('%B%')
GROUP BY Col1;
因此,我的输出应该是

Col1 
2

问题是您试图根据另一行中的数据删除一行,所以唯一的方法是在前几天检查

select Col1
from table1 D1
where not exists (select 1 from table1 D2 where D2.Col1 = D1.Col1 and (Col5 like ('%A%') or Col5 like ('%B%')))
group by Col1

@达夫:但如果你的Col5有A&B作为值,那你为什么要尝试使用LIKE运算符呢。只需在“A”中不使用Col5,“B”是的,但我想删除Col5中至少有1个“A”或“B”的Col1,因此我按Col1进行分组有很多方法可以做到这一点。。。例如,您可以使用notexists或EXCEPT或左自联接,其中null。。。举个简单的例子:从表1中选择Col1作为T1(不存在),从表1中选择1作为T2(其中T2.Col1=T1.Col1,T2.Col5类似于“%[AB]%”按Col1分组;