declare @t table(id int,Uid int,Str varchar(4))
insert into @t select 1,5,'aaa'
insert into @t select 2,5,'bbb'
insert into @t select 3,5,'ccc'
insert into @t select 4,6,'ddd'
insert into @t select 5,6,'eee'
insert into @t select 6,8,'ggg'
insert into @t select 7,8,'ttt'
insert into @t select 8,2,'uuu'
insert into @t select 9,2,'hhh'
select a.* from @t a order by (select count(*) from @t where Uid=a.Uid and id<=a.id),uid
/*
id Uid Str
----------- ----------- ----
8 2 uuu
1 5 aaa
4 6 ddd
6 8 ggg
9 2 hhh
2 5 bbb
5 6 eee
7 8 ttt
3 5 ccc
*/