How to request a random row in SQL?

前端 未结 29 2915
孤城傲影
孤城傲影 2020-11-21 06:45

How can I request a random row (or as close to truly random as is possible) in pure SQL?

29条回答
  •  说谎
    说谎 (楼主)
    2020-11-21 07:08

    See this post: SQL to Select a random row from a database table. It goes through methods for doing this in MySQL, PostgreSQL, Microsoft SQL Server, IBM DB2 and Oracle (the following is copied from that link):

    Select a random row with MySQL:

    SELECT column FROM table
    ORDER BY RAND()
    LIMIT 1
    

    Select a random row with PostgreSQL:

    SELECT column FROM table
    ORDER BY RANDOM()
    LIMIT 1
    

    Select a random row with Microsoft SQL Server:

    SELECT TOP 1 column FROM table
    ORDER BY NEWID()
    

    Select a random row with IBM DB2

    SELECT column, RAND() as IDX 
    FROM table 
    ORDER BY IDX FETCH FIRST 1 ROWS ONLY
    

    Select a random record with Oracle:

    SELECT column FROM
    ( SELECT column FROM table
    ORDER BY dbms_random.value )
    WHERE rownum = 1
    

提交回复
热议问题