用sql server生成随机数
发布网友
发布时间:2022-04-22 11:44
我来回答
共3个回答
热心网友
时间:2022-04-08 07:11
--创建视图
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
热心网友
时间:2022-04-08 08:29
好了..
------------------------------
create view v_RAND
as
select re=stuff(rand(),1,2,'')
go
create function f_RANDBH(@BHLen int)
returns varchar(50)
as
begin
declare @r varchar(50)
if not(isnull(@BHLen,0) between 1 and 50)
set @BHLen=10
lb_bh:
select @r=re from v_RAND
while len(@r)<@BHLen
select @r=@r+re from v_RAND
set @r=left(@r,@BHLen)
if exists(select * from '表名' with(xlock,paglock) where number1=@r)
goto lb_bh
return(@r)
end
go
-----------------
准备工作好了
你的number1的默认值设为:dbo.f_RANDBH(4) 这个根据你需要设随机数个数 char() 类型
------------
应该没问题了
热心网友
时间:2022-04-08 10:03
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。
SqlServer怎么获得生成的newid的值?
在查询分析器中执行:select rand(),可以看到结果会是类似于这样的随机小数:0.36361513486289558,像这样的小数在实际应用中用得不多,一般要取随机数都会 取随机整数。那就看下面的两种随机取整数的方法:A:select floor(rand()*N) ---生成的数是这样的:12.0B:select cast( floor(rand()*...
使用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 ta...
在SQL Server数学函数中,获取0~1之间的随机值的函数是什么?
MSSQLSERVER如要获取0~1之间的随机数可以使用下列表达式:Floor(2* Rand())例如每次运行下列SQL语句,将随机返回0或1 select Floor(2* Rand());请注意MSSQL的SQL语言,每次运行select,不论检索出多少行,随机函数rand都将返回相同的随机数。另外,需要返回某个指定范围的随机整数请参考下列公式:Floor...
如何向SQLSERVER中进行update一组随机数
这个还真不好做,因为sqlserver在0.5秒内,用 同一种子,随机函数会取到同一个数,可能的话在表中新加一列,然后,列识成标志列,全填上数字。然后用 update 表名 set 要改的列名 = round (( 刚生成的列转成字符,+ 秒数转字符, 加时间转字符 )转换成数字)这样一个近拟的效果...
sqlserver 中rand()是产生随机数,为什么还要设置种子?
随机函数rand可以认为是一个函数,只不过输出的值看起来是随机的罢了。对任何一个函数都需要输入初始值x,对不同的初始值x对应不同的y,如一般C语言中采用rand(time(0))就是把当前时间作为初始值输入,由于当前时间每次都不一样,所以产生的随机数每次也不一样。sqlserver中rand()应该也是一个道理,...
数据库怎么让一列生成随机数
可以用存储过程啊 就可以实现啊 语句也行啊 MYSQL语法 SELECT FLOOR(7 + (RAND() * 6));你先建立一个表 然后在插入数据 UPDATE `news_conta_all_20141104` SET memo4=CEIL(RAND()*199);
如何在sqlserver中用sql语句插入随机的大量的数据啊~求救。。
随机的没弄,给你写个简单的例子 建表 create table test (id int,name varchar(10))执行过程,我这个就插了100条 declare @i intset @i=1while @i <=100begininsert into test values (@i,'张三')set @i=@i+1end 数据截图 楼上那哥们想法不错,不过用的是oracle里的写法,但好像还有...
SQL update...set...数值按随机数增加的语句怎么写
看样子,数据库像sqlserver的,如果是单条update的话,用这个:UPDATE S_calculatePrepaidMoney SET [count]=[count]+ceiling(rand()*9)其中:select ceiling(rand()*9)就是1-9的随机数
sql 生成100个99---199间的随机数
DECLARE @counter smallint;SET @counter = 1;WHILE @counter <101 BEGIN select 99+cast(ceiling(rand() * 100) as int)SET @counter = @counter + 1 END;GO
如何用SQL语句实现某个字段数为随机数?
以某整数字段为种子(没有的话要生成一个),通过RAND函数生成一个0-1之间的随机数。如0.7136106261841817,然后转换成文本型,再取后7位即RIGHT(CONVERT(VARCHAR,RAND(序号)),7) 。结构化查询语言(Structured Query Language)简称SQL,结构化查询语言是一种数据库查询和程序设计语言,用于存取数据以及...