高手,我要对一批符合条件的记录进行随机取几条,怎样实现比较科学呀
比如:
    数据表中有1000条记录,符合系统要求条件的有200条,我在要这200条中随机取出30条记录使用,怎样实现比较好。
  请赐教,不胜感激

解决方案 »

  1.   


    select top 30 *
    from tablename
    where ...
    order by newid()
    另,如果想问问题,请不要用“考验你......”这样的字眼。
      

  2.   

    一个很简单的例子:
    '先引用adodb库
    Private Sub Command1_Click()
    Dim ADOCon As New ADODB.Connection
    Dim ADORst As New ADODB.Recordset
    Dim result As String
     ADOCon.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:\Program Files\Microsoft Visual Studio\VB98\BIBLIO.MDB;Persist Security Info=False"
     ADORst.Open "select * from Authors where au_id>10", ADOCon, adOpenDynamic, adLockOptimistic
    Randomize
    rstcnt = ADORst.RecordCount
    fiecnt = ADORst.Fields.Count
    For i = 1 To 3
        Index = Int((fiecnt + 1) * Rnd)
       ADORst.Move Index
        For j = 0 To fiecnt - 1
        If IsNull(ADORst.Fields(j).Value) Then
        result = result + ","
        Else
         result = result + CStr(ADORst.Fields(j).Value) + ","
         End If
        Next
        Print result
        result = ""
    Next
    End Sub程序实现随机打印三条记录,但没有做防重复等其他处理,实际应用中可添加进去
      

  3.   


    demo.htm<frameset rows="300,*">
      <frame src="top.htm" name="topFrame">
      <frame src="bottom.htm" name="bottomFrame">
    </frameset>top.htm<input type="text" name="txt">bottom.htm<a href="#" onclick="top.frames['topFrame'].document.all.txt.value=this.innerText">灰豆宝宝.net</a>