我的表格如下:
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
答案 0 :(得分:1)
问题是您要根据另一行中的数据来消除一行,因此唯一的方法是检查另一天,例如
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