如何随机查询数据库中的一条记录呢?

解决方案 »

  1.   

    Randomize;
    select id from db where id=random(99);
      

  2.   

    这样子有可缺点,如果不存在random(99)那就返回空啦,哈哈,没有全面考虑
      

  3.   

    sql server
    select top 1 from tableName
    order by NewId()
      

  4.   

    哦,说错了,现在我所有数据是在DBGrid里面,我想在里面随机抽取,应该怎么随机滚动指针?
      

  5.   

    declare @RecID int
    declare @state int
    set @RecID=0
    set @state=0
    do while @RecID=0
    begin
       select @RecID=Tablename.id from tablename where id=Random(maxnum)
    end
    if @RecID<>0 
    begin
       set @state=0
       select * from tablename where id=@RecID
    end
    else
       set @state=1
      

  6.   

    var
      pos: Int64;
    begin
      Randomize;
      pos := Random(ADOQuery1.RecordCount);
      ADOQuery1.First;
      ADOQuery1.MoveBy(pos);
    end;