如何在选择查询中编写部分连接查询?

时间:2017-01-30 21:37:14

标签: sql sql-server sql-server-2008

我必须在表中编写一个Join来返回不匹配的部分列值记录。

Id    PersonName     FileId    FileName

36   Kenneth Park   1002    Kenneth H. Park 
36   Kenneth Park   1002    Kenneth H. Park 
29   Margaret That  1008    Robert Strauss

预期结果

Id    PersonName     FileId    FileName
29   Margaret That   1008   Robert Strauss

1 个答案:

答案 0 :(得分:4)

您的数据有点奇怪,因为确切的重复。如果您希望行不是完全重复的,则需要使用group by,而不是join(除非您有其他可以区分行的列):

select id, PersonName, FileId, FileName
from t
group by id, PersonName, FileId, FileName
having count(*) = 1;