如何在一个数据集中随机抽取若干条记录?如果分少,可以加分! (50分)

  • 主题发起人 主题发起人 sinpo
  • 开始时间 开始时间
S

sinpo

Unregistered / Unconfirmed
GUEST, unregistred user!
已经得到一数据集,设其中有1000条记录,要多次从中随机抽取若干条记录,如何实现!
 
你要再什么环境中实现呢?是在编程中还是怎么样呢?
 
如果是在SQL Server中就可以使用NewId函数
比如表中有个字段叫ID
则可以使用下面的语句

select * from Table where id>newid()
 
其实都无所谓,我主要是要得到某种随机算法!
具体点:我已从oracle中返回了一数据集,在delphi中对此数据集每次随机抽取50条记录,
怎么实现?
 
another_benlei,我用的是oracle,相应的有什么函数?
 
详细点:我已从oracle中得到了一数据集,有5000条记录,然后对此数据集每次随机抽取50
条记录,怎么办?拜托各位帮帮忙!
 

st := dmod.Query1.RecordCount;
Ntemp := 50;
f := 1;
while (f <= Ntemp) do begin //
Num := Random(st) + 1;
dmod.Query1.first;
dmod.Query1.MoveBy(Num - 1);//指向选中记录
.... //对该记录实施操作
....
f:=f+1;
end;
 
随机函数,POSITION也随机。
 
to sinpo
该结束了!
 
select top N * from table1 order by newid()
N 代表你要随机产生的记录数。才学来的.
我有一个问题更有挑战


这是一个考试系统中最主要也是最重要的模块,用户可通过这个模块生成自己满意的试卷而无须动手编写。
,每道题目有两个很重要的属性:所属类别和难易程度,每种类别分成四种难度,以便于分值的区分。同时。每题的分值包括两个部分:类别的分值与难度的分值,纵向的表示难度分值,横向的表示类别分值。首先,用户应根据需要在类别和难度所对应的框中输入要生成的题目数,在分值所对应的框中(类别和难度)输入分值。若用户想要生成一张试卷,其条件如下:

1 2 3 4 分值(类别)
常识与发展部分 0 3 2 2 1
款式设计 2 5 3 4 2
样板设计 2 3 3 2 2
工艺设计 2 3 4 1 2
排料系统 1 2 2 1 2
设备部分 1 2 1 2 2
分值(难度) 1 2 3 4
根据以上设置,用户可将这些条件输入(可以为0),若题库中的题目数不能满足用户需求,系统将提示用户。例如:用户输入款式设计部分难度为3的题目数为5,但题库中统中难度同种类别的题目只有2题,因此,系统提示:“款式设计部分难度为2的题目数是2,逾越范围请重新输入!”;若是忘了输入分值(类别分值或难度分值),当生成试卷时,系统会提示用户“款式设计部分难度为2的题目分值为0,请输入有效值!”;避免了生成无效或错误的试卷。用户设置完后(生成的试卷不一定包括每种难易程度的题目),单击“生成试卷”按钮,系统可根据用户的设置从题库中随机抽出各种难度的题目。

帮小弟写一个存贮过程吧


 
后退
顶部