怎么随机取满足条件的几条记录

huangchena 2013-11-15 06:47:18
比如我想实现这种效果

select top 10 * from Table where yes=3 order by rand()


但是这个sql语句每次取出来的10条都是一样的
...全文
49 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
shoppo0505 2013-11-15
  • 打赏
  • 举报
回复
NEWID()会在每次扫描数据行的时候执行,rand()在执行操作的运行一次,对所有数据行有效。 你这里的话,order by rand(),每行的rand()值都相同,排序没有意义,数据顺序输出按照数据库保存顺序返回。
huangchena 2013-11-15
  • 打赏
  • 举报
回复
引用 1 楼 shoppo0505 的回复:
select top 10 * from Table where yes=3 order by NEWID()
就是啊,,,为什么用 newid() 就能实现啊,,厉害
shoppo0505 2013-11-15
  • 打赏
  • 举报
回复
select top 10 * from Table where yes=3 order by NEWID()

34,590

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧