以前从一个表中随机获取数据的时候,都是选把数据读取到程序中,然后在使用程序来随机抽取一部分数据, 今天一个朋友告诉了我一种使用 SQL 语句的方法来随机获取一部分数据, 使用起来方便多了.
SQL Server:
-- 随机获取 10 条数据
SELECT TOP 10 * FROM T_USER ORDER BY NEWID()
ORACLE:
-- 随机获取 10 条数据
SELECT * FROM (SELECT * FROM T_USER ORDER BY SYS_GUID()) WHERE ROWNUM <= 10;
-- 第二种方法
SELECT * FROM (SELECT * FROM T_USER ORDER BY DBMS_RANDOM.RANDOM()) WHERE RONUM <= 10;
在 ORACLE 中,测试了一下这两种方法,感觉 DBMS_RANDOM 比 SYS_GUID 性能要高一点