我正在使用SQL Server 2012,需要一些帮助来获取查询中需要的结果。我的数据如下所示:
ConsumerID Tag
1000028041 bBROAapp
1000028041 bBROtiva
1000028041 bClsElig
1000028041 bPCAFwd
1000028041 bTOPNoRs
1000028041 bTOPNwRq
1000028041 bTOPActv
并且我只想在给定的ConsumerID具有我要查找的所有标签值的情况下,才选择它们。
例如,这将选择带有3个标记中的任何一个的所有记录:
SELECT ConsumerID
FROM BorrowerTags
WHERE Tag IN('bBROAapp', 'bBROtiva');
结果:
1000028041 bBROAapp
1000028041 bBROtiva
这没有返回结果
SELECT ConsumerID
FROM BorrowerTags
WHERE Tag = 'bBROAapp'
AND Tag = 'bBROtiva';
没结果
我只希望ConsumerID同时具有两个值的那些记录-都不是其中一个。
仅当它们具有所有标签值时,我才想选择给定的ConsumerID
您可以使用:
SELECT ConsumerID
FROM BorrowerTags
WHERE Tag IN ('bBROAapp', 'bBROtiva')
GROUP BY ConsumerID
HAVING COUNT(DISTINCT Tag) = 2;
如果您想为消费者提供完整的记录,则可以使用:
SELECT *
FROM BorrowerTags
WHERE ConsumerID IN (... above query ...)
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句