使用 SQL 语句从一个表中随机获取一些数据

以前从一个表中随机获取数据的时候,都是选把数据读取到程序中,然后在使用程序来随机抽取一部分数据, 今天一个朋友告诉了我一种使用 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 性能要高一点

你可能感兴趣的:(sql)