select top n * from yourtable order by newid()

解决方案 »

  1.   

    select top 10 * from yourtable order by newid()关键是 newid()
    ---------------
    select newid()
    go
      

  2.   

    是不是NEWID()的作用是把数据表中的记录随机排序,然后用TOP 10在随机排序后的表中取前十条记录。但这样的话,假如数据库中用10000条以上的记录的话,会不会速度很慢 ?
      

  3.   

    我 新建一个存储过程中用一个变量来表示返回的纪录数,select top @num * from choose order by newid()检查语法时总是出错,是不是top后面不能跟变量。有没有其他方法。
      

  4.   

    declare @sql varchar(8000)
    set @sql='select top '+cast(@num as varchar(10))+' * from choose order by newid()'exec(@sql)