检索数据_12_从表中随机返回N条记录
作者:互联网
从表中随机返回N条记录
需求描述
需求:从雇员表emp里随机查询5条雇员的名称和工资信息。
解决方法:使用数据库里内置的限制行数函数结合随机函数来解决。
注: 数据库数据集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