日期:2014-05-18  浏览次数:20510 次

生成一个随机记录集,有什么好的算法没?
生成一个随机记录集,有什么好的算法没?

------解决方案--------------------
云里雾里


------解决方案--------------------
INSERT 表 SELECT
CHAR(65+RAND(CHECKSUM(NEWID()))*25),
DATEADD(Day,1-RAND(CHECKSUM(NEWID()))*500,GETDATE()),
RAND(CHECKSUM(NEWID()))*360
FROM sysobjects a,sysobjects b

------解决方案--------------------
字段個數有要求嗎?
------解决方案--------------------
最简单的

select top 100 newid() as randcol from sysobjects a,syscolumns b
------解决方案--------------------
随机取出10条数据
select top 10 * from tablename order by newid()

------解决方案--------------------
通常用 RAND 生成随机数的方法是,用相对不定的某个值作为种子值,例如累加 GETDATE 的几个部分:

SELECT RAND( (DATEPART(mm, GETDATE()) * 100000 )
+ (DATEPART(ss, GETDATE()) * 1000 )
+ DATEPART(ms, GETDATE()) )


------解决方案--------------------
select * from (select * from staff(表名) order by dbms_random.random) where rownum < n(所要记录的个数)

这个应该行
------解决方案--------------------
如果是想生成几位数,尽量平均分布的话
比如4位数 0000~9999,10W条数据
那么随意找几个字段连成长字段
1位位的相加出结果(10位) A
再来10位 B
C
...
N
连成字符ABC...N,再%10000
需要用其他语言来写

------解决方案--------------------
随机抽10道题

select top 10 * from 试题表 order by newid()
------解决方案--------------------
随机的问题就两个函数rand()和newid()