declare @t table (id int,test int)
insert into @t select 1,1
insert into @t select 3,3
insert into @t select 4,3
insert into @t select 2,2
insert into @t select 5,3
insert into @t select 6,3
insert into @t select 7,3
select * from @t a where id=(select top 1 id from @t where test=a.test and test =3 order by newid())
大家先猜猜答案,在去调试
3,3
默认升序排列
test=3的id有3,4,5,6,7
最小的3
然后搜索id=3 的就一条呀
insert into t select 1,1
insert into t select 3,3
insert into t select 4,3
insert into t select 2,2
insert into t select 5,3
insert into t select 6,3
insert into t select 7,3
select * from t a where id=(select top 1 id from t where test=a.test and test =3 order by newid())
可用游标写入临时表。。或确定唯一test列后再连
有个order by newid()了