>>>;with cte as (select T.*, row_number() over (order by NewID()) as RandomRow >>>from Test T where not exists (select 1 from Test T2 where T.FamilyID = T2.PartnerID)) >>> >>>select * from cte where RandomRow <=4>>>
select select top (@RecCount) m.membership_no,m.member_ref into tempdb.dbo.step1 from member m join individual i on m.individual_ref = i.individual_ref left join individual i2 on i2.family_ref = i.individual_ref where ((i.individual_ref < i2.individual_ref ) or i2.individual_ref is null) -- suppress partner duplicates order by newid()