【发布时间】:2016-12-05 18:57:33
【问题描述】:
我的数据如下所示:相同的PolicyNumber 可以有不同的ClassCode。那么如果至少有一个ClassCode被选择为NOT IN,那么如何消除所有包含PolicyNumberPACA1000101-00的行
如果我说WHERE ClassCode <> 01183,我希望所有这些记录都不会出现在结果集中。
【问题讨论】:
-
双重否定令人不安。所以你想要所有类代码为 01183 的记录? (带有预期结果的样本数据!)
-
如果
PolicyNumber有 ClassCode01183我想要PolicyNumber和任何其他ClassCodes(它们是69183和01183),这个PolicyNumber必须消失 -
换一种说法,如果一个 policyNumber 有一个类代码 01183 的出现,那么,您希望从结果中排除该 policyNumber。这似乎是使用 not in 或 not exists 的好时机。 (不存在在更大的数据集上更快)
-
请阅读this,了解一些改进问题的技巧。
-
谢谢。会做。对此感到抱歉
标签: sql-server tsql notin