我试图运行以下查询,但不确定如何将其限制为仅一个结果。 在下面的查询中,clientcontactid 21901适用的客户端有2个地址,即2个结果返回。MS SQL 2008加入 - 从许多结果中选择一个
查询:
select cc.contactpersonid,
cc.clientcontactid,
ad.city,
ad.addressid
from SavedList sl
inner join ClientContacts cc on cc.ContactPersonId = sl.ObjectId
inner join Clients c on c.ClientID = cc.ClientId
inner join Address ad on c.ClientID = ad.ObjectId
where sl.SavedListId = 2117
结果:
contactpersonid clientcontactid city addressid
87934 21901 145186
87934 21901 London 1130705
89778 17275 Leeds 145368
我需要返回的结果之一客户联系,则优先级为上一个与城市的它。我试过选择顶部(1),但我认为这是由于联合迫使多个记录回来。如何返回只有1结果的任何帮助,以及如何控制,将不胜感激!
感谢
问题放在哪里城市不是null是否有一些记录将在城市中为null,如果没有其他选择,我很乐意返回这些记录。 你会把选择的顶部1放在哪里?如果它进入顶端,那么它将只返回带有clientcontact 21901的顶部行,并且不会返回clientcontact 17275的顶部行! – franglais