select cast(rand(datepart(ms,getdate())*1000)*29 as int)+1
SELECT ABS(CHECKSUM(NEWID()))%100 --产生100以内的随机数
循环rand() 判断有重复的重新生成
将这几个数放在一个表中, insert into tb --1插入 select ceiling(rand() * 10) --2查询! select top(N) x from tb order by newid()
--#1.有重复 SELECT TOP(20) ABS(CHECKSUM(NEWID()))%100 from master..spt_values --#2.无重复 SELECT DISTINCT TOP(20) ABS(CHECKSUM(NEWID()))%100 from master..spt_values
表名:NumGetTable,包括:试题Id(标示)、题目problem、答案answer,表中有123到试题,你给的SELECT ABS(CHECKSUM(NEWID()))%100语句,之前我写的Select top 20 * from NumGetTable order by newid()语句, 一次把20道题全部随机取出了,我想每次随机取出一道,取20道。
Select top 1 * from NumGetTable order by newid() --这样好使不?
这样的话,jsp页面怎么刷新呢
你在代码里写个循环,每次执行 Select top 1 * from NumGetTable order by newid() 把它添加到LIST列表中就能实现了.
select cast(rand(datepart(ms,getdate())*1000)*29 as int)+1
将这几个数放在一个表中,
insert into tb
--1插入
select ceiling(rand() * 10)
--2查询!
select top(N) x from tb order by newid()
SELECT TOP(20) ABS(CHECKSUM(NEWID()))%100 from master..spt_values
--#2.无重复
SELECT DISTINCT TOP(20) ABS(CHECKSUM(NEWID()))%100 from master..spt_values
一次把20道题全部随机取出了,我想每次随机取出一道,取20道。
--这样好使不?
你在代码里写个循环,每次执行
Select top 1 * from NumGetTable order by newid()
把它添加到LIST列表中就能实现了.