随机抽取~~~~~~~~~~~~~~~~~~~~~~~~~~```

whowho 2003-03-24 02:37:48
我要在几百人中随机抽取几个人,保证在一年内每人都抽到,但又要保证已经抽到的人在规定时间内不出现。请高手给个算法,高分感谢!!!!!!
...全文
55 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
pengdali 2003-03-24
  • 打赏
  • 举报
回复
我要在几百人中随机抽取几个人,保证在一年内每人都抽到,但又要保证已经抽到的人在规定时间内不出现。请高手给个算法,高分感谢!!!!!!
例:
create table 你的表 (编号 int,姓名 varchar(100))
go
create table 已抽过的用户表 (第几次抽中的 int,编号 int,姓名 varchar(100))
go
insert 已抽过的用户表 select top 10 1,* from 表 where 编号 not in (select 编号 from 已抽过的用户表) order by newid()

上面的1可以你每次执行可以取
select isnull(max(第几次抽中的),0)+1 from 已抽过的用户表
就可以了!
nik_Amis 2003-03-24
  • 打赏
  • 举报
回复
up
liuyunfeidu 2003-03-24
  • 打赏
  • 举报
回复
gz
smallcrocodile 2003-03-24
  • 打赏
  • 举报
回复
强烈关注
heixiu1980 2003-03-24
  • 打赏
  • 举报
回复
给抽到的人做个标记,然后定时查询,如果过了规定时间,就把标记清零,要想保证一年内每个人都抽到的话,就得把规定时间设长一些,如果发现无人可用,也就是所有标记都为1,就全都清零,重新抽。
CrazyFor 2003-03-24
  • 打赏
  • 举报
回复
select top M * into #temp from table where 标记=0 order by newid()
update table set 标记=1 where table.名字 in (select 名字 from #temp) --更新这次抽出的人,使其下次不会再被抽出。
select * from #temp ---这次需要的数据

22,298

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧