一个表有10行记录,怎样随机取一行显示呢?
select * from table where rownum=1 只能去第一行,可是我想随即取到一行,不想总取第一行,
请问怎么写SQL语句?

解决方案 »

  1.   

    Select a random record   SELECT srvr_id
    FROM (
      SELECT srvr_id
      FROM servers
      ORDER BY dbms_random.value)
    WHERE rownum = 1;
      

  2.   


    wel  解释一下,不懂
      

  3.   

    排序先调用dbms_random获取的随机数排序,然后取第一条.
      

  4.   

    order by 很慢的。  SELECT srvr_id 
      FROM servers srvr_id=ceil(10*dbms_random.value)
      

  5.   

    Select a random record  
      

  6.   

    dbms_random.value 是取随机数
    Order By dbms_random.value ,为结果集的每一行计算一个随机数,dbms_random.value 是结果集的一个列(虽然这个列并不在select list 中),然后根据该列排序,得到的顺序自然就是随机的啦。