ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

检索数据_12_从表中随机返回N条记录

2021-03-31 10:33:28  阅读:153  来源: 互联网

标签:检索 12 函数 从表中 value 随机 SQL SELECT emp


                             从表中随机返回N条记录

 

需求描述

需求:从雇员表emp里随机查询5条雇员的名称和工资信息。

解决方法:使用数据库里内置的限制行数函数结合随机函数来解决。

注: 数据库数据集SQL脚本详见如下链接地址

员工表结构和数据初始化SQL脚本

SQL代码

--Mysql:
SELECT ename,sal
FROM emp
order by rand() limit 5;

-- Sql server:
SELECT TOP 5 ename,sal
FROM emp
ORDER BY NEWID()

注: newid是SQL Server里的内置函数,因为newid()返回的是uniqueidentifier类型的唯一值,而且每次生成的值都不一样,所以能达到随机的效果。

执行结果

 

-- Oracle:
SELECT * FROM
(
    SELECT ename,sal 
    FROM emp
    ORDER BY Dbms_Random.value()
)
WHERE rownum <=5

注: dbms_random是一个可以生成随机数值或者字符串的程序包。这个包有initialize()、seed()、terminate()、value()、normal()、random()、string()等几个函数,但返回随机值的函数value()是最常用的。

你可以直接访问这个随机数字的函数,它返回个0到1之间的一个小数。

SELECT Dbms_Random.value() AS RAND_VALUE
FROM DUAL;

执行结果

如果想生成1-100之间的随机数,你可以这么做:

SELECT TRUNC(Dbms_Random.value()*100) AS RAND_VALUE
FROM DUAL;

执行结果

标签:检索,12,函数,从表中,value,随机,SQL,SELECT,emp
来源: https://blog.csdn.net/shenliang1985/article/details/115343771

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有