求一SQL 语句 小弟菜鸟 高手帮帮忙!!!
假如一张表中有N条数据,从其中随机取出20条数据,而且取出的时候必须是单个取出,Sql语句该怎么写,求高手帮忙,小弟不胜感激!!!
------最佳解决方案--------------------select distinct top 20 * from table1 order by newid();
------其他解决方案--------------------SELECT DISTINCT TOP 20 NEWID(), * FROM Clothes c (NOLOCK)
ORDER BY NEWID();
------其他解决方案--------------------
select top 20 *
from tb
order by newid()
这样取就不会有重复的
------其他解决方案--------------------
select distinct top 20 *
from tb
order by newid()
------其他解决方案--------------------单个取出?
------其他解决方案--------------------单个取出是什么意思呢?
------其他解决方案--------------------还要不重复是吧
------其他解决方案--------------------那就是随机生成20条记录吧
------其他解决方案--------------------随机20次union all起来?
------其他解决方案--------------------
+1
楼主为什么要单一抽取呢?
------其他解决方案--------------------用while循环
循环20次
------其他解决方案--------------------是的 单个取出,总共20条 必须是随机的
------其他解决方案--------------------好像不行啊,如果指定了 select distinct,那么 order by 子句中的项就必须出现在选择列表中。
------其他解决方案--------------------
好像不行啊,如果指定了 select distinct,那么 order by 子句中的项就必须出现在选择列表中
------其他解决方案--------------------
就是二十条数据必须一条一条的取出,如果随机同时取出的话我自己会:select top 20 * from 表名 order by newid() 就OK了 问题是非同时取出 而是单个取出
------其他解决方案--------------------
是的 ,但是必须保证单个取出 总共20条记录
------其他解决方案--------------------
这条语句我也会 ,这能随机取出20条数据 但是不能保证单个取出
------其他解决方案--------------------