当前位置:首页 » 编程语言 » sql随机整数

sql随机整数

发布时间: 2022-04-22 23:32:47

‘壹’ 用sql 产生随机数字

不同的数据库,写法是不一样啊!对于Access数据库,可以用这个方法实现:
SELECT
Int(Rnd()*100)+1
AS
r1,Int(Rnd()*100)+1
AS
r2,Int(Rnd()*100)+1
AS
r3
如此循环。其他数据库的写法类似。
但是如果纯粹用sql生成50*200个随机数,很麻烦的。如果要简单些,需要额外写SQL
Server的存储过程或者Access的宏函数。
可以用Excel表来实现,见附件。

‘贰’ 如何用SQL语句实现某个字段数为随机数

以某整数字段为种子(没有的话要生成一个),通过RAND函数生成一个0-1之间的随机数。如0.7136106261841817,然后转换成文本型,再取后7位即RIGHT(CONVERT(VARCHAR,RAND(序号)),7) 。

‘叁’ 如何在SQL里生成随机数

从 RAND 生成随机数的常用方法是,用相对可变的某个值作为种子值,例如将 GETDATE 的几个部分累加:

SELECT RAND( (DATEPART(mm, GETDATE()) * 100000 )
+ (DATEPART(ss, GETDATE()) * 1000 )
+ DATEPART(ms, GETDATE()) )

‘肆’ 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到10之间的随机整数

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

‘陆’ sql server随机产生20个50到100之间的随机整数,使用WHILE语句显示这20个随机数.

其实这个问题很简单了
你都知道的,rand()
函数产生的是0到1之间的小树
那么用rand()*100
就是0到100的整数(可以用直接截取前面两位也就是
整数部分
,然后过滤出大于50的)

‘柒’ 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 产生10个20—99之间的随机整数

SELECT FLOOR(RAND()* 79 + 20)
用上面的sql执行,可以得出20到99之间的一个随机整数,然后你可以用循环或者重新使用10次得出10个随机数

‘玖’ 使用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

热点内容
网卡访问 发布:2025-05-18 03:35:04 浏览:504
接收和发送服务器地址 发布:2025-05-18 03:33:48 浏览:365
ef数据库查询数据 发布:2025-05-18 03:29:36 浏览:668
百度云下载文件夹 发布:2025-05-18 03:17:33 浏览:674
php云开发 发布:2025-05-18 03:12:41 浏览:447
sql语句显示表 发布:2025-05-18 03:12:30 浏览:690
数据库系统的例子 发布:2025-05-18 03:02:42 浏览:191
数字化储存与编译是什么 发布:2025-05-18 02:56:55 浏览:217
个人网站模板源码 发布:2025-05-18 02:51:17 浏览:490
主服务器ip地址 发布:2025-05-18 02:46:29 浏览:856