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

sql指定范围随机数

发布时间: 2022-08-28 23:15:27

A. sql 触发器与一定范围内的随机数产生

写了一个例子给你,随机数函数 在 2 8 14 29 42 五个数中随机选选中一个

sqlserver环境 有问题再追问,望采纳。

createviewv_random
as
selectcast(floor(RAND()*100)asint)%5asrandom
go
createfunctionRandom()
returnsint
as
begin
declare@numint,@reltint
select@num=randomfromv_random;
if@num=0
set@relt=2;
elseif@num=1
set@relt=8;
elseif@num=2
set@relt=14;
elseif@num=3
set@relt=29;
else
set@relt=42;
return@relt
end
--调用
selectdbo.Random()

B. 使用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

C. 请问怎么用SQL函数按职位范围生成对应的随机数

用随机数吧,语句复杂点

select *,
cast(left(奖金范围,charindex('-',奖金范围)-1) as int),
cast(right(奖金范围,len(奖金范围)-charindex('-',奖金范围)) as int),
cast(left(奖金范围,charindex('-',奖金范围)-1) as int) + convert(numeric(9,2), rand()*(CONVERT(int, ABS(CHECKSUM(NEWID())), 8 ) % (cast(right(奖金范围,len(奖金范围)-charindex('-',奖金范围)) as int) - cast(left(奖金范围,charindex('-',奖金范围)-1) as int))))
from table1

D. 如何用SQL语句实现某个字段数为随机数

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

E. 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

F. 如何用SQL为每一行均产生一个随机数

select
dbms_random.random
from
al;
返回的是binary_integer
类型值,产生任意大小的随机数(正或者负)binary_integer
,范围为2的31次方到-2的31次方。
具体还有很多关于随机数字或者字母的使用,都是关于dbms_random系统包的用法,
例如dbms_random.value
;
dbms_random.normal
;
dbms_random.string
;
可以上网查询下。

G. 怎么用SQL语句实现某个字段数为随机数,如一个表里的学号字段,怎么让这个学号自动生成7位数的随机数

1、以某整数字段为种子(没有的话要生成一个)
2、通过RAND函数生成一个0-1之间的随机数。如0.7136106261841817
3、然后转换成文本型
4、再取后7位即可RIGHT(CONVERT(VARCHAR,RAND(序号)),7) 。
具体语句如下:
如果表中有一个字段为整型的序号或标识列,那么就可以以序号为种子生成随机的学号字段。
UPDATE TABLENAME SET 学号=RIGHT(CONVERT(VARCHAR,RAND(序号)),7) WHERE 序号 IS NOT NULL
如果没有整型的序号或标识列,就要根据表中能够唯一标识确定某行的关键字段来生成学号,如ID
UPDATE TABLENAME SET 学号=RIGHT(CONVERT(VARCHAR,rand((select count(1) from tablename a where a.id>=tablename.id))),7)

H. sql server 怎么生成随机数

--创建视图
create
view
myview
as
select
re=rand()
--自定义函数:取得指定范围的随机数
create
function
mydata(
@a
int,
@b
int)
returns
decimal(38,0)
as
begin
declare
@r
decimal(38,0)
select
@r=cast(re*(@b-@a)+@a
as
decimal(38,0))
from
myview
return(@r)
end
go
--调用(可以随意指定你要的数据范围)
select
user_no,dbo.mydata(1000,9999)
number
from
table1
--可以在你原来的查询基础上增加一列number,如不增加列,
--那就把上面的结果放入一个临时表
#a,然后update
--如:
update
table1
set
number1=a.number
from
#a
a,table1
b
where
a.user_no=b.user_no

I. 在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()为系统函数,返回小于或等于所给数字表达式的最大整数。

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