我是新手,所以对你们来说可能是一个简单的SQL查询。
在表格中,我有PFAULT
0
和1
针对一个SRID
的记录。我想只获取0
为PFault
的记录。如果任何记录有PFault
1
而不是我不需要该记录。
E.g。记录可以包含0
和1
这两个值,但我只需要那些没有1
的记录。字段类型为bit
。
样本表数据
ID | SRID | PFault
---- | ---- | ----
2255 | 1212 | 0
2256 | 1212 | 0
2257 | 1212 | 1
2258 | 1213 | 0
2259 | 1213 | 1
2260 | 1214 | 0
2261 | 1214 | 0
2262 | 1216 | 0
如上所述我需要
的数据SRID 1214 and 1216
答案 0 :(得分:3)
我假设您指的是SRID。如果这就是你所需要的:
select srid
from t
group by srid
having max(Pfault) = 0;
您也可以将其写为:
have max(cast(Pfault as int)) = 0
如果您想要原始行:
select t.*
from t
where not exists (select 1 from t t2 where t2.srid = t.srid and t2.Pfault = 1);
答案 1 :(得分:1)
你几乎用英语表达它的方式可以直接翻译成SQL。这是一个非常好的开始。那个直截了当的翻译看起来像:
select srid from table
except
select srid from table where pfault = 1;
答案 2 :(得分:0)
SELECT SRID
FROM #Table Otr 在哪里PFault = 0且不是EXISTS(SELECT 1来自#Table inr WHERE inr.pfault = 1 AND inr.SRID = Otr.SRID) GROUP BY SRID