SQL RAND 函数 
 SQL 有一个 RAND 函数,用于产生 0 至 1 之间的随机数: 
 
    SQL>  SELECT RAND( ), RAND( ), RAND( ); 
    +------------------+-----------------+------------------+ 
    | RAND( )          | RAND( )         | RAND( )          | 
    +------------------+-----------------+------------------+ 
    | 0.45464584925645 | 0.1824410643265 | 0.54826780459682 | 
    +------------------+-----------------+------------------+ 
    1 row in set (0.00 sec) 
 当以某个整数值作为参数来调用的时候,RAND() 会将该值作为随机数发生器的种子。对于每一个给定的种子,RAND() 函数都会产生一列可以复现的数字: 
 
    SQL>  SELECT RAND(1), RAND( ), RAND( ); 
    +------------------+------------------+------------------+ 
    | RAND(1 )         | RAND( )          | RAND( )          | 
    +------------------+------------------+------------------+ 
    | 0.18109050223705 | 0.75023211143001 | 0.20788908117254 | 
    +------------------+------------------+------------------+ 
    1 row in set (0.00 sec) 
 你可以使用 ORDER BY RAND() 来对一组记录进行随机化排列,如下所示: 
 
    SQL> SELECT * FROM employee_tbl; 
    +------+------+------------+--------------------+ 
    | id   | name | work_date  | daily_typing_pages | 
    +------+------+------------+--------------------+ 
    |    1 | John | 2007-01-24 |                250 | 
    |    2 | Ram  | 2007-05-27 |                220 | 
    |    3 | Jack | 2007-05-06 |                170 | 
    |    3 | Jack | 2007-04-06 |                100 | 
    |    4 | Jill | 2007-04-06 |                220 | 
    |    5 | Zara | 2007-06-06 |                300 | 
    |    5 | Zara | 2007-02-06 |                350 | 
    +------+------+------------+--------------------+ 
    7 rows in set (0.00 sec) 
 现在,试试下面的命令: 
 
    SQL> SELECT * FROM employee_tbl ORDER BY RAND(); 
    +------+------+------------+--------------------+ 
    | id   | name | work_date  | daily_typing_pages | 
    +------+------+------------+--------------------+ 
    |    5 | Zara | 2007-06-06 |                300 | 
    |    3 | Jack | 2007-04-06 |                100 | 
    |    3 | Jack | 2007-05-06 |                170 | 
    |    2 | Ram  | 2007-05-27 |                220 | 
    |    4 | Jill | 2007-04-06 |                220 | 
    |    5 | Zara | 2007-02-06 |                350 | 
    |    1 | John | 2007-01-24 |                250 | 
    +------+------+------------+--------------------+ 
    7 rows in set (0.01 sec) 
 
    SQL> SELECT * FROM employee_tbl ORDER BY RAND(); 
    +------+------+------------+--------------------+ 
    | id   | name | work_date  | daily_typing_pages | 
    +------+------+------------+--------------------+ 
    |    5 | Zara | 2007-02-06 |                350 | 
    |    2 | Ram  | 2007-05-27 |                220 | 
    |    3 | Jack | 2007-04-06 |                100 | 
    |    1 | John | 2007-01-24 |                250 | 
    |    4 | Jill | 2007-04-06 |                220 | 
    |    3 | Jack | 2007-05-06 |                170 | 
    |    5 | Zara | 2007-06-06 |                300 | 
    +------+------+------------+--------------------+ 
    7 rows in set (0.00 sec) |