我正在寻找一种从SELECT语句中排除行的有效方法WHERE返回多行,并且某列的值相同.
具体来说,我正在选择一堆帐户,但需要排除在多个帐户中找到相同SSN的帐户.
解决方法
这将返回所有正好1行的SSN
select ssn,count(*) from SoMetable group by ssn having count(*) = 1
这将返回超过1行的所有SSN
select ssn,count(*) from SoMetable group by ssn having count(*) > 1
您的完整查询将是这样的(将在sql Server 7及更高版本上运行)
select a.* from account a join( select ssn from SoMetable group by ssn having count(*) = 1) s on a.ssn = s.ssn