日期:2014-05-17  浏览次数:20759 次

随机抽取N条记录出现问题
IF EXISTS (SELECT name FROM sysobjects
         WHERE name = 'sp_select_suiji' AND type = 'P')
   DROP PROCEDURE sp_select_suiji
GO
create procedure sp_select_suiji
as 
SELECT top 3* FROM Heigth
WHERE 0.01 >= CAST(CHECKSUM(NEWID(), xuhao   ) & 0x7fffffff AS float) / CAST (0x7fffffff AS int)
And CONVERT(varchar(20),shijian , 120 ) like '2013-06-01%'
go
exec sp_select_suiji



怎么才两条记录

------解决方案--------------------
为了效率问题,应该让所有的数据有个连续的唯一编号。
这样随机生成3个数字,按照数字得到3条结果即可。