从sql server 数据库中随机取出10条记录

从sql server 数据库中随机取出10条记录
比如表utable中字段uid,uname;
其中三条记录满足条件uid='123'
其他7条记录没有关系。

SELECT TOP 3 * FROM UTABLE WHERE UID='123' ORDER BY NEWID()
UNION ALL
SELECT TOP 7 * FROM UTABLE WHERE UID<>'123' ORDER BY NEWID()

说明:newid()是一个随机函数,所以这样就可以查到随机10条记录了
union all 是不消除重复记录进行连接
温馨提示:答案为网友推荐,仅供参考
第1个回答  2010-01-29
先分别查出,然后两个结果连接
SELECT TOP 3 * FROM UTABLE WHERE UID='123' ORDER BY NEWID()
UNION
SELECT TOP 7 * FROM UTABLE WHERE UID<>'123' ORDER BY NEWID()
第2个回答  推荐于2017-10-09
select top 3 * from tablename
where uid='123' order by newid()
union all
select top 7 * from tablename
where uid<>'123' order by newid()本回答被提问者采纳
相似回答