当前位置:首页 » 编程语言 » sql取随机值范围
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

sql取随机值范围

发布时间: 2022-08-02 02:29:48

sql 获取1到10之间的随机整数

1到10之间的随机整数:
Select Round(Rand()*9+1,0)
n到m之间的随机整数(n<m):
Select Round(Rand()*(m-n)+n,0)

② 关于SQL如何取随机数问题

Oracle的随机数产生函数(DBMS_RANDOM )
2007-10-17 17:12
Oracle8 8.0版介绍了DBMS_RANDOM包,Oracle8i 8.1.6版介绍了DBMS_RANDOM包的新功能,但Oracle8i 文档中没有详细全面介绍其功能。幸运的是:有一个新的DBMS_RANDOM包函数能够返回0-1之间的随机数。这个新函数是:
◆ FUNCTION value RETURN NUMBER;
◆ FUNCTION value (low IN NUMBER, high IN NUMBER) RETURN NUMBER;
◆ FUNCTION normal RETURN NUMBER;
◆ FUNCTION string (opt char, len NUMBER) RETURN VARCHAR2;

VALUE函数的第一种形式返回一个大于或等于0且小于1的随机数;第二种形式返回一个大于或等于LOW,小于HIGH的随机数。下面是其用法的一个示例:
SQL> select dbms_random.value, dbms_random.value(55,100) from al;
VALUE DBMS_RANDOM.VALUE(55,100)
--------------- -----------------------------
.782821936 79.6367038
NORMAL函数返回服从正态分布的一组数。此正态分布标准偏差为1,期望值为0。这个函数返回的数值中有68%是介于-1与+1之间,95%介于-2与+2之间,99%介于-3与+3之间。事实上,这就是你在清单1中所看到的。
最后,是STRING函数。它返回一个长度达60个字符的随机字符串。参数OPT可以是清单2显示的值中的任何一个单个字符。
关于这些函数及DBMS_RANDOM包的文件都包含在SQLPlus中:
select text from all_source
where name = 'DBMS_RANDOM'
and type = 'PACKAGE' order by line;

③ 使用SQL语句取随机数的方法

SQL随机查询语句,[数据库使用技巧]SQL语句生成随机数,如何随机显示sql查询语句查询的数据记录集中的20条,随机取出若干条记录的SQL语句,使用SQL语句取随机数的方法
方法如下:
SQL
Server:
Select
TOP
N
*
From
TABLE
order
By
NewID()
Access:
dim
r
randomize
r
=
rnd
sql
=
"select
top
10
*
from
table
order
by
rnd("
&
r
&
"-id)"
rnd("
&
r
&
"-id)
其中的id是自动编号字段,可以利用其他任何数值来完成,比如用姓名字段(UserName)
select
top
10
*
from
table
order
by
rnd("
&
r
&
"-Len(UserName))
MySql:
Select
*
From
TABLE
order
By
Rand()
Limit
10
orACLE:
select
*from
(select
*from
t
order
by
dbms_random.value)
where
rownum<10

④ sql server 怎么生成随机数

rand() 定义: 返回从0到1之间的随机浮点值。
举例说明:
select rand() as 随机数   结果如图:

select cast( floor(rand()*N) as int )  --方法1
结果:20
select cast( ceiling(rand()*N) as int ) --方法2
结果:43
大致一看,这两种方法没什么区别,区别就是他们的生成随机数的范围:
方法1的数字范围:0至N-1之间,如cast( floor(rand()*100) as int)就会生成0至99之间任一整数
方法2的数字范围:1至N之间,如cast(ceiling(rand() * 100) as int)就会生成1至100之间任一整数
比较 CEILING 和 FLOOR
CEILING 函数返回大于或等于所给数字表达式的最小整数。FLOOR 函数返回小于或等于所给数字表达式的最大整数。
例如,对于数字表达式 12.9273,CEILING 将返回 13,FLOOR 将返回 12。

⑤ 如何在SQL中生成随机量,取值范围定在(PHD MBA UG GRE)中取

1、建个表里面存上【PHD MBA UG GRE】
create table tmp(t1 varchar(3));
insert into tmp values('PHD');
insert into tmp values('MBA');
insert into tmp values('UG');
insert into tmp values('GRE');

2、随机插入数据
insert into 插入表名 select top 1 插入值1,插入值2...,t1 from tmp order by newid();

※select top 1 t1 from tmp order by newid();
就是随机取得 (PHD MBA UG GRE)

---
以上,希望对你有所帮助。

⑥ sql能不能像C#一样,随机取出一个范围内的一个数

rand() 0~1之间随机 ;

可以用rand()*500得出的数取整,然后+500

⑦ sql取给定范围的随机取几个指定数据

增加一个int字段,取随机数
然后设置随机数
Create PROCEDURE [dbo].[prodsn] as
begin
declare @i as int
declare @num int
set @i=0
while (@i<2000)----2000是你的记录数,直接count出记录数来,写这里(这里最好是条件)
begin
set @num=(CONVERT(int,round(rand()*(2),(0)),(0)))
if @num==0
begin
update a set er='21:00' where 条件
end
if @num==1
begin
update a set er='22:00' where 条件
end
if @num==2
begin
update a set er='23:00' where 条件
end
set @i=@i+1
end
end

⑧ 在SQL Server数学函数中,获取0~1之间的随机值的函数是什么

MSSQLSERVER如要获取0~1之间的随机数可以使用下列表达式:

Floor(2* Rand())

例如每次运行下列SQL语句,将随机返回0或1

selectFloor(2*Rand());

请注意MSSQL的SQL语言,每次运行select,不论检索出多少行,随机函数rand都将返回相同的随机数。

另外,需要返回某个指定范围的随机整数请参考下列公式:

Floor((upperbound - lowerbound + 1) * Rand() + lowerbound)

参数说明:

upperbound 为正整数上限

lowerbound 为正整数下限

Rand()为系统随机函数

Floor()为系统函数,返回小于或等于所给数字表达式的最大整数。

有不同需要时,照套上述公式就可以了。

⑨ SQL如何获取33-128之间的随机整数

大家应该都知道sql server中Rand()函数用法了,好吧,如果你不知道,我们可以解释一下:
Rand()函数:返回一个介于0和1之间的随机float值。

但这个函数并没有提供参数让我们设置返回的随机数的范围,比如我只想返回一个大于或等于1但同时又要小于或等于100的整数。现在我们做一个自定义函数,用于返回一个指定最大值与最小值内的随机整数。该自定义函数还是需要用到Rand系统函数,但因为在函数中是不能够使用Rand函数的,如果有使用,会报以下的错误:
在函数内的 'rand' 中对带副作用的或依赖于时间的运算符的使用无效

为了解决该问题,我们先创建一个视图V_Rand,用于读取一个随机数,视图代码如下:

CREATE VIEW View_Rand
AS
SELECT RAND() AS RandValue

有了该视图,我们就开始创建我们需要的函数了,sql如下:

CREATE FUNCTION [dbo].[udf_GetRandomInteger]
(
@MinValue int = null,
@MaxValue int = null
)
RETURNS int
AS
/*
函数名称:udf_GetRandomInteger
功能简述:取随机整数
相关对象:无
参数:@MinValue 最小值
@MaxValue 最大值
*/
BEGIN

declare @RandomValue float
declare @ReturnValue int

while(1=1)
begin
--从随机数视图中获取一个随机值(因为函数中不能直接使用rand(),所以用V_Rand视图代替)
select @RandomValue = RandValue from V_Rand
--根据最大最小值获取随机整数
if @MinValue is not null and @MaxValue is not null
begin
select @ReturnValue = ceiling(@RandomValue * @MaxValue)
if @ReturnValue >= @MinValue and @ReturnValue <= @MaxValue
begin
break
end
end
else if @MinValue is not null and @MaxValue is null
begin
select @ReturnValue = ceiling(@RandomValue * @MinValue)
if @ReturnValue >= @MinValue
begin
break
end
end
else if @MinValue is null and @MaxValue is not null
begin
select @ReturnValue = ceiling(@RandomValue * @MaxValue)
if @ReturnValue <= @MaxValue
begin
break
end
end
else if @MinValue is null and @MaxValue is null
begin
select @ReturnValue = convert(int,substring(convert(varchar(20),@RandomValue),3,20))
break
end
end

return @ReturnValue

END

上面的函数也有用到了ceiling()系统函数,该函数的作用就返回一个总是大于或等于指定的numeric值的整数。比如:ceiling(1.1),会返回2,celing(2),也会返回2,它不会对参数进行四舍五入的运算。

好了,函数创建完毕,我们可以开始测试该函数了,执行以下sql

select dbo.udf_GetRandomInteger(33,128)

⑩ sql如何将一个范围内的数据随机修改(例如:将1--100的数据改为20--25的随机值)

updatetablenamesetfieldname=cast(floor(RAND()*5)asint)+20
wherefieldnamebetween1and100